2
我有一個具有以下結構的代碼。如何判斷openmp不同步陣列
#pragma omp parallel for
for(i = 0; i < N; i++)
{
.....
index = get_index(...);
array[index] = ...;
.....
}
現在的index
值是爲每個線程唯一的(它永遠不會重疊的不同的線程),但當然OpenMP的不能讓這種猜測,我想用同步對象訪問array
。
如何讓openmp不要使用array
的同步對象,並依靠我index
值對於不同的線程是唯一的。我嘗試將array
置於私人列表中,但出現了分段錯誤。
OpenMP在默認情況下不會同步任何內容。所以這不應該是一個問題。索引是在並行區域內還是外部聲明的? – Mysticial
僅供參考:由於緩存垃圾,寫入到來自不同線程的共享陣列會導致可怕的性能問題。你應該確保這些線程當前寫入的indeces之間有一定的距離)。 – smerlin