1

マルチCPU /コアマシンでmpi4pyとopenmpiを使用して、線形代数を実行しています。私の numpy はATLASを使用して構築されています。4 コアのマシンがあり、numpy を使用して各ノードで線形代数を実行する 4 ノードの Python スクリプトを実行したいとします。

各ノードで線形代数を実行しているときに、ATLAS が複数のコアを使用しないようにするにはどうすればよいですか? ATLAS をビルドするとき、一度に 1 つのコアだけで実行するように構成するオプションはないようです。インテル® MKL では OMP_NUM_THREADS=1 を設定できると思いますが、この動作は保証されています。この目的のためだけに ATLAS を構築する方法はありますか? 環境変数に相当するものはないようです。

マルチコア CPU の各コアで複数の BLAS 操作を同時に実行することは、適切な戦略ではないと推測しています。誰でもこれについてコメントしたり、これが良いアイデアか悪いアイデアかの経験則を教えてもらえますか?

4

1 に答える 1

1

残念ながら、ATLAS が使用するスレッドの最大数は、OMP_NUM_THREADS などの環境変数では制御できません。シリアル ATLAS ライブラリに対して numpy を再リンクする必要があります。見る

http://math-atlas.sourceforge.net/faq.html#tsafe

于 2010-09-29T12:09:49.433 に答える