2012年1月31日火曜日

コアの ID を指定して並列計算する方法(mvapich2 編)

並列計算をする際、通常は "mpirun -np 4" のように使用するコアの数のみを指定して実行しますが、何らかの理由があってコアの ID まで指定したい場合にはどうすればいいのでしょうか。mvapich2 を利用する場合の解決策を知ったのでここにメモしておきます。方法は以下の通り。
  1. 計算を行う際のホスト名を例えば "host" というファイルに書いておきます。書き込むホスト名の先頭にはスペースを、行末には改行記号をつけておく必要があるようですが理由は知りません(試したところどちらかが欠けている場合にはエラーが出て実行出来ませんでした)。
  2. mpirun_rsh -np 4 -hostfile ./host MV2_CPU_MAPPING=0:1:2:3 ./a.out と打ち込みます。MV2... が使用するコアを指定するオプションです。
あるジョブを特定のコアがすでに受け持ってくれているような場合で、それらの邪魔をせずに他のジョブを実行させたい時などは役に立つと思います。
■参考 URL(質問者が僕です):http://goo.gl/stEjh

それにしても、高い負荷がかかっているコアを自動的に避けて複数のジョブを実行するってのはバッチ処理とかしないと実現出来ない事なんだろうか?

0 件のコメント:

コメントを投稿