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