2016-09-27 29 views
2

固有並列化に関するいくつかの質問があります。Eigenを複数スレッドで実行する

私の理解では、Eigenは内部並列化を処理しますが、マルチスレッドを有効にしたいと思います。私はちょうどフラグ "-fopenmp"を使ってG ++でコンパイルを始め、OMP_NUM_THREADS = 4 ./execで実行可能ファイルを実行しています。

唯一私が使用したC++コードを使用して実行コードのいくつかの部分:

私は時々私は複数のスレッドを使用しますが、「それはにISN時間のほとんどことがわかります私のシステムモニターを見
#pragma omp parallel 
{ 
} 

t。追加のOpenMpコードを使用する必要があるかどうかはわかりません。次のリンクで

は:

https://eigen.tuxfamily.org/dox/TopicMultiThreading.html

彼らは、「あなたのアプリケーションは、OpenMPで並列化された場合には、前のセクションで説明するように固有の独自のparallizationを無効にすることができます」と言及し、私私はそれをやるべきかどうかを本当に理解していない。

私はここでコンセプトを混ぜ合わせていないことを願っています。

事前に感謝します。まさにあなたのプログラムを知らなくても、このように行列積PartialPivLU

- 一般的な行列:現在、次のアルゴリズムは、マルチスレッドを利用することができます

:あなたが投稿のリンクから引用

答えて

1

大規模な行列行列乗算やPartialPivLUではないと推測されます。これはEigenの内部並列化にのみ関係します。 omp並列ブロック内で何をするかは、おそらく予想どおりに実行されます(複数のスレッド)。

関連する問題