我有这个parallel for循环
struct p
{
int n;
double *l;
}
#pragma omp parallel for default(none) private(i) shared(p)
for (i = 0; i < p.n; ++i)
{
DoSomething(p, i);
}
现在,由于向 中添加了新元素DoSomething(),可能p.n会增加inside p.l。我想以并行方式处理这些元素。OpenMP 手册指出parallel for不能与列表一起使用,因此DoSomething()将这些p.l新元素添加到另一个列表中,该列表按顺序处理,然后与p.l. 我不喜欢这种解决方法。有人知道更清洁的方法吗?