У меня есть несколько блоков, каждый из которых имеет целые числа в массиве разделяемой памяти размером 512. Как я могу проверить, содержит ли массив в каждом блоке нуль в качестве элемента?
То, что я делаю, это создание массива, который находится в глобальной памяти. Размер этого массива зависит от количества блоков, и он инициализируется равным 0. Следовательно, каждый блок записывается в a[blockid] = 1
, если массив разделяемой памяти содержит нуль.
Моя проблема в том, что у меня одновременно есть несколько потоков в одном блоке. То есть, если массив в общей памяти содержит более одного нуля, то несколько потоков будут писать a[blockid] = 1
. Это породит любую проблему?
Другими словами, было бы проблемой, если 2 потока записывают одно и то же значение в тот же самый элемент массива в глобальной памяти?