1
這個openMP代碼塊運行良好,但我需要確保沒有競爭條件。因此,我已將j
變量設爲私有。複雜的openMP代碼競爭條件的識別
通過這樣做,我認爲任何競爭條件都不應該存在於最內層循環中的賦值操作。如果我錯了,請糾正我。
#pragma omp parallel for private(i,j,k) shared (result_buffer,trans_a,element_b)
for (i=0; i<N; i++)
result_buffer[i]=0;
{
for (j = 0; j<(N/comm_size); j++)
{
for(k=0; k<N; k++)
result_buffer[k]=result_buffer[k]+trans_a[j*N+k]*element_b[j];
}
}
嗯...是在result_buffer [i] = 0之前的第一個`{`應該*';'? – Mysticial 2011-12-16 01:10:28
沒有..它在最外面的'For'循環裏面。 – 2011-12-16 01:17:20