Я новичок в OpenMP. Я пытаюсь использовать OpenMP в моем коде на C++. Код слишком сложен, поэтому я упрощаю вопрос следующим образом:Использование OpenMP в классе C++
class CTet
{
...
void cal_Mn(...);
}
int i, num_tet_phys;
vector<CTet> tet_phys;
num_tet_phys = ...;
tet_phys.resize(num_tet_phys);
#pragma omp parallel private(i)
for (i = 0; i < num_tet_phys; i++)
tet_phys[i].cal_Mn(...);
Я надеюсь, что цикл может работать параллельно, но это, кажется, что все потоки запустить весь цикл самостоятельно. Расчет повторяется каждым потоком. В чем проблема в моем коде? Как это исправить? Спасибо!
июня
Вы компилировались с флагом '-fopenmp'? – Richard