У меня есть следующий код, который я хотел бы сделать его параллельным (псевдокод)
int na = 10000000;
int nb = na;
double A[na];
double B[2*na];
double a;
for(int j=0;j<nb;j++)
{
i = rand() % na;
A[i]+=5.0*i;
B[i+10]+=6.0*i*i;
}
Конечно, я не могу использовать #pragma omp parallel for
, потому что иногда (что не может быть предсказано) один и тот же элемент будет доступен двум потокам одновременно. Как можно распараллелить этот блок кода? Спасибо