Мне интересно, можно ли сделать этот цикл параллельным, используя openMP.Как использовать openMP для этого цикла?
Грубая проблема с условиями гонки. Я не уверен, как иметь дело с n во внутреннем цикле, создаваемом наружным кольцом, и условием гонки, где D = A [n]. Считаете ли вы целесообразным попытаться сделать эту параллель?
for(n=0; n < 10000000; ++n) {
for (n2=0; n2< 100; ++n2) {
A[n]=A[n]+B[n2][n+C[n2]+200];
}
D=D+A[n];
}
Заметим, что 'n2' во внутреннем цикле не зависит от' n' в любом случае - вы могли бы заменить внутренний цикл с 100 явно написанными строками без проблем ... – sarnold