OpenMP的理想数据结构

时间:2010-11-15 08:27:39

标签: c++ data-structures openmp parallel-processing

在我的案例中,在并行编程中,什么是理想的数据结构。

#pragma omp parallel for
for(int i = 0; i < N; i++)
{
    if(table[i] == true)
        container.insert(i); // ?? what kind
}

在这个例子中,如果我们使用类似大小的表可能很简单。什么是C ++中共享内存并行编程的更通用的数据结构?

2 个答案:

答案 0 :(得分:1)

最好不要完全依赖共享数据结构(因为在某些时候你必须依赖锁定,这会减慢速度)。相反,让每个线程写入自己的结构,并在并行部分完成后合并结果。

答案 1 :(得分:1)

该阵列是并行编程的理想数据结构。

我不同意@Oli Charlesworth不愿依赖共享数据结构 - 毕竟OpenMP是关于共享内存并行化的,它提供了程序员确保数据安全所需的工具。