在我的案例中,在并行编程中,什么是理想的数据结构。
#pragma omp parallel for
for(int i = 0; i < N; i++)
{
if(table[i] == true)
container.insert(i); // ?? what kind
}
在这个例子中,如果我们使用类似大小的表可能很简单。什么是C ++中共享内存并行编程的更通用的数据结构?
答案 0 :(得分:1)
最好不要完全依赖共享数据结构(因为在某些时候你必须依赖锁定,这会减慢速度)。相反,让每个线程写入自己的结构,并在并行部分完成后合并结果。
答案 1 :(得分:1)
该阵列是并行编程的理想数据结构。
我不同意@Oli Charlesworth不愿依赖共享数据结构 - 毕竟OpenMP是关于共享内存并行化的,它提供了程序员确保数据安全所需的工具。