我想将 openMP 的任务编译指示用于下一个代码:
std::vector<Class*> myVectorClass;
#pragma omp parallel
{
#pragma omp single nowait
{
for (std::list<Class*>::iterator it = myClass.begin(); it != myClass.end();) {
#pragma omp task firstprivate(it)
(*it)->function(t, myVectorClass))
++it;
}
}
#pragma omp taskwait
}
问题或其中之一是 myVectorClass 是指向对象的指针。因此无法将此向量设置为共享。myVectorClass 由函数修改。之前的代码崩溃。那么,你能告诉我如何修改之前的代码(不使用 for-loop pragma)吗?
谢谢