1


0

Pythonを使用したマルチコアでのATLAS線形代数とopenmpi

mpi4pyとopen-mpiをマルチCPU /コアマシンで使用して、線形代数を実行します。 私のnumpyはhttp://en.wikipedia.org/wiki/Automatically_Tuned_Linear_Algebra_Software[ATLAS]を使用して構築されています。 4コアマシンがあり、numpyを使用して各ノードで線形代数を実行する4ノードpythonスクリプトを実行するとします。

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

マルチコアCPUの各コアで複数のBLAS操作を同時に実行するのは良い戦略ではないと思います。 誰かがこれについてコメントしたり、これが良いか悪い考えであるかの経験則を与えることができますか?

1 Answer


1


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