我有一个计算矩阵之和的函数(使用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实现并不简单。