Распараллеливание цикла с помощью OpenMP
Подскажите, #pragma omp parallel for в этом коде поможет ли ускорить производительность и не приведёт ли это к ошибкам? Правильно ли я понимаю что эта директива позволит рандомить элементы используя производительность нескольких ядер?
Код для генерации рандомного расположения элементов.
#pragma omp parallel for
for (int i=0; i<N; i++) {
double f = (double)rand() / RAND_MAX;
double random_x = r_min.x + f * (r_max.x - r_min.x);
f = (double)rand() / RAND_MAX;
double random_y = r_min.y + f * (r_max.y - r_min.y);
#pragma omp critical
cout << "Coordinates " << i+1 << " element: " << random_x << " " << random_y << "\n";
element[i].x = random_x;
element[i].y = random_y;
}
Источник: Stack Overflow на русском