KMP_AFFINITY を disabled に(tensorflow)

0

※ あらたに続編、投稿しています。

KMP_AFFINITY=disabledはコードの冒頭に



Python のCPU並列処理に joblib ライブラリを使っているが、
並列処理が適切に 実行されない事があった。

例外が出ないまま、CPU負荷が上がらず、処理が返ってこない。

ターミナルには以下のようなメッセージが出ている。

OMP: Info #212: KMP_AFFINITY: decoding x2APIC ids

以降も同様に、KMP_AFFINITY 関連のログである。

 

調べてもあまり情報が出てこなかったのだが、
以下のサイトにて KMP_AFFINITY = disabled が引っかかった。

http://www.stelab.nagoya-u.ac.jp/supercomputer/faq.html

ダメ元で次のコードを追記すると、並列処理されるようになった。

import os
os.environ[“KMP_AFFINITY”] = “disabled”

tensorflow のバージョンは 1.13.1 である。
並列処理には、joblib の 0.14.1 を使用している。

並列処理が普通に走れば、下図のように負荷が上がる。


今回の現象では、CPU 負荷がいくら待っても上がらなかった。
(待ち切れなかっただけかもしれないが)
tensorflow 側 と joblib が 干渉・競合しているのかもしれない。

いまいち調べきっていないのだが、備忘にて書いておく。

 

カテゴリー:


0