巷では Myrinet 使うならば SCore だが、Myrinet 使わないならば SCore いらないと言われているそうだが、SCore の NIC の trunking 機能は結構便利で、最近ではギガビットネットワークが2本ついているマザーボードも多いので、その点では大変重宝すると思う。
ASC においても Myrinet 関連でトラブルを起きることは良くあるようで、以下のようなエラーメッセージを良くみかける。
SCore-D:WARNING PM myrinet/myrinetxp device already opened.
SCore-D:ERROR No network device
しかしノード自体が死んでいるわけではないので、PBS のサーバもこのエラーが発生したノードを使い続けることになる。PBS では計算に何台使うのかは指定できるが、具体的にどのノードを使うのかは基本的に PBS にお任せになる。しかし実際には、このエラーが発生しているノードは避けて計算したいのだが、qsub コマンドでは特定のノードを避けるオプションは無いのでどうするべきか?
ちなみに qdel コマンドでジョブを止めてしまえばエラーメッセージの中にどのノードで異常が発生しているのかといった情報が入っている。
以下は教えてもらった方法である。例えば p05, p07 というノードを避けて PBS にジョブを投入する方法である。
(1) ターミナルを 2 つ起動し、それぞれサービスノードにログインしてくだ
さい。
(2) 片方のターミナルで、障害ノードだけを事前に確保します。
これには qsub コマンドのインタラクティブモード( -I オプション)を使
用します。
コマンドラインから下記を実行してください。
p04 % qsub -I -l nodes=p05:ppn=2+p07:ppn=2
p05, p07 のみを確保したジョブがキューイングされ、シェ
ルのプロンプトが返ってきますので、そのままにしておきます。
# ジョブを終了してインタラクティブモードを抜けるには、プロンプトを
# exit するか、Ctrl-D を入力してください。
(3) もう片方ターミナルから、改めて下記のスクリプトをジョブに投入してく
ださい。こちらは通常の投入方法で結構です。
障害ノードは (2) で既に確保されていますので、ここで投入されたジョ
ブは障害ノード以外で実行されます。