我有这个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
. 我不喜欢这种解决方法。有人知道更清洁的方法吗?