次のようなプログラムブロックがあります。
for (iIndex1=0; iIndex1 < iSize; iIndex1++)
{
for (iIndex2=iIndex1+1; iIndex2 < iSize; iIndex2++)
{
iCount++;
fDist =(*this)[iIndex1].distance( (*this)[iIndex2] );
m_oPDF.addPairDistance( fDist );
if ((bShowProgress) && (iCount % 1000000 == 0))
xyz_exception::ui()->progress( iCount, (size()-1)*((size()-1))/2 );
}
}
}
}
内側と外側のループを並列化し、iCount を重要な領域に配置しようとしました。これを並列化するための最良のアプローチは何でしょうか? iCount を omp single または omp atomic でラップすると、コードでエラーが発生し、omp for 内では無効であることがわかりました。これを並列化するために、多くの無関係なものを追加していると思います。アドバイスが必要...
ありがとう、
サヤン