単純なコードがあり、マルチスレッド対応にしたいと考えています。
for(x=0;x<xLen;x++)
{
for(y=0;y<yLen;y++)
{
index = x*y+z;
a[index] = a[index-1] + a[index+1] +a[index-lenX] + a[index+lenX];
}
}
通常、xLen をスレッド数で割り、すべての部分を独自のスレッドで実行します。ただし、この場合に分割すると問題が発生し、場所によっては結果が間違ったデータに基づいている場合があります (たとえば、 index-1 は既に隣接するによって更新された値を保持します)。
以前にこの種の問題を抱えていた体はありますか?この種の方程式に対する既知のアプローチはありますか?