1
我有一个关于特征阵列操作的问题(基本上是矩阵元素操作)。阵列操作中的C++特征多线程
这些操作(+, - ,*,/)是否在Eigen中并行化(使用OpenMP时)?文档没有指定它(c.f. here),但是这样的操作预计会被并行化,因为我猜它会非常简单。
例子:
MatrixXd A = MatrixXd::Zero(100,100);
MatrixXd B = MatrixXd::Ones(100,100);
MatrixXd C = A.array() + B.array(); // element-wise addition
MatrixXd D = A.array()/B.array(); // element-wise division
,如果它是并行这将是巨大的。在我的代码中,我有很多这些基于元素的操作,使用OpenMP重新定义所有这些操作会更加沉重。
在此先感谢
的确,我看了一下这个页面(c.f.我的文章)。我不明白你的意思是什么“这不排除SIMD操作,所以仍然会使用这些操作。”,你的意思是SIMD操作作为数组操作支持Eigen中的多线程吗?谢谢 – Odin
他可能意味着你将在每个线程中仍然有SIMD(向量)操作 – Cantfindname
好的,谢谢。至少,如果它在行或列上并行化,它会比纯粹的顺序计算更有效率,我猜? – Odin