使用特征矩阵进行C ++并行化并映射迭代器

时间:2015-11-18 15:04:42

标签: c++ boost openmp eigen boost-thread

我有一个计算矩阵之和的函数(使用Eigen框架),其中矩阵存储在std :: map中。具体来说,我必须做一些看起来像这样的事情:

Eigen::Matrix2f Summer::DoSum(){
  Eigen::Matrix2f sum = Eigen::Matrix2f::Zero();
  BOOST_FOREACH(const auto& myPair,pairMap){
    const Voxel*       voxel = myPair.first;
    const Eigen::Matrix2f& b = myPair.second;
    const float&           a = voxel->GetA();
    sum += a*b;
  }
  return sum;
}

地图非常大,所以我考虑过将其并行化。似乎有两个主要选择:openmp和boost。在这种情况下,一方面有什么优点和缺点?在任何一种情况下,代码都需要重写吗?从我所看到的,这个例子的openmp实现并不简单。

0 个答案:

没有答案