ホーム > HPC・DL・AI > サポート > FAQ > IBM Platform LSF

IBM Platform LSF

LSFからのジョブ投入が、昨日まではできたが今日はメッセージが表示されできなくなった。
表示されるメッセージが下記のようであれば、LSFのライセンス期限が切れた可能性があります。

  Host does not have a software license

以下のライセンスファイルを弊社サポート宛(hpcs_support@hpc.co.jp)までご送付いただけますでしょうか。

  /usr/share/lsf/conf/license.dat
閉じる
LSFを使ったジョブの投入方法が知りたい。
ジョブの投入コマンドの一例を以下に示します。

  $ bsub -q short -o out ./a.out
  -q :キュー名
  -o :出力ファイル
  a.out :実行ファイル
閉じる
LSFを使って投入したジョブの状態を確認したい。
以下のいずれかのコマンドで確認できます。

$ bhosts
  各ノードの情報(ホスト名・ホスト状態・ジョブスロット制限・ジョブ状態統計)
$ lsload
  各ノードの負荷に関する情報
$ bjobs -u all
  送信されたバッチジョブに関する情報

lsloadの出力結果の意味は以下の通りです。

status
  各ノードの負荷状態
r15s
  15秒間内で CPU を使用しようとしている平均プロセス数
r1m
  1分間内で CPU を使用しようとしている平均プロセス数
r15m
  15分間内で CPU を使用しようとしている平均プロセス数
ut
  CPU利用率
pg
  ページング率(ページ/秒)
ls
  ログインしたユーザの数
it
  アイドル時間(最後の対話ユーザアクティビティからの経過時間)(分)
tmp
  /tmp容量(GB)
swp
  ページング・スペース(MB)
mem
  メモリ(MB)
閉じる
全ノードの状態を確認したい。
以下のコマンドで確認できます。

  $ bhosts

詳細はmanページ、LSF リファレンスガイド等を参照ください。
閉じる
投入したジョブを取り消したい。
以下のコマンドを実行してくたさい。
bjobsコマンドでJOBIDを確認して下記のように入力してください。

  $ bkill "JOBID"

詳細はmanページ等を参照ください。
閉じる
ジョブ投入するノードを指定して実行したい。
.以下のようにbsubコマンドでジョブを実行する際に、-mオプションを付与すれば実行するノードを指定できます。

$ bsub -q short -o out -m hpc2 ./a.out

-q
  キュー名(指定なしの場合、default queueで実行されます)
-o
  出力ファイル
-m
  ノード名(実行したいノードがhpc2の場合)
a.out
  実行ファイル
閉じる
ジョブの履歴情報を確認したい。
以下のコマンドで確認できます。

  $ bhist

各種オプションの詳細等はmanページ等を参照ください。
閉じる
LSFキューについて、設定内容と現在の状態を確認したい。
以下のコマンドで確認できます。

  $ bqueues

詳細はmanページ等を参照ください。
閉じる
LSFキューの設定を変更したい。
lsb.queuesファイルを編集します。
例えばCPU time の制限を行う場合、該当のqueueに CPULIMITパラメータを追加します。
ファイルは下記の場所にあります。

  /usr/share/lsf/conf/lsbatch/クラスタ名/configdir/lsb.queues

上記ファイルを変更後、以下のコマンドをrootユーザで実行して設定を反映させてください。

  # badmin reconfig

詳細はmanページ等を参照ください。
閉じる
Gatewayマシンでは計算を行わないようにLSFを用いて設定したい。
lsb.hostsファイルを編集します。
ファイルは下記の場所にあります。

  /usr/share/lsf/conf/lsbatch/クラスタ名/configdir/lsb.hosts

Gatewayホスト名のMXJの値を0にします。

  hpcgw 0 () () () () () ()
  default 1 () () () () () ()

上記ファイルを変更後、以下のコマンドをrootユーザで実行して設定を反映させてください。

  # badmin reconfig

詳細はmanページ等を参照ください。
閉じる
LSFを使用したMPIジョブの投入方法が知りたい。
以下のようなコマンドでmyjobを実行できます。

  $ bsub -n 4 mpijob mpirun myjob
閉じる
新規登録したユーザがLSFからジョブを投入したがPEND状態のままでRUN状態にならない。
新規ユーザが全ノードで登録されていないことが原因と考えられます。

NIS使用下の環境で新規ユーザ登録とNISのデータベースへ反映させる方法が知りたい。』を参考にしてください。
閉じる
投入したジョブがきちんと実行されたかどうかを確認したい。
bsubコマンドでジョブを実行する際に-oオプションで出力ファイルを指定していれば、そのファイルにログが出力され実行できたかどうか、実行できていなければその原因を探ることができます。
閉じる
bhostコマンドの出力を見ると特定のノードでstatus欄がunavailになっている。
statusがunavailとなる原因として、下記のような原因が考えられます。
(1)該当のノードがフリーズ等しており、通信不能状態になっている
(2)LSFデーモンの一部が起動していない

該当ノードと通信ができるかどうか、ログインできるかをご確認してみてください。
閉じる
クラスタ再起動を行うとbhostsコマンド出力のstatus欄が全クライアントノードでunavailになる。
ホストノードのOSが起動する前に、クライアントノードが起動するとクライアントノードではLSFデーモンが起動できず、このような状態になる場合があります。
この場合、全てのクライアントノードをもう一度rebootしてみてください(ホストノードで/root/sbin/REBOOTを実行します)。 クラスタ起動時にクライアントノードを手動で起動する場合は、ホストノードのOSが起動したことを確認した上でクライアントノードを起動させるようにお願いいたします。
閉じる
LSFが動作していない(ジョブ投入ができない)が何を調べればよいか。
クラスタの起動後LSFのデーモンが完全に起動するまでに数分間かかるので、その間はジョブ投入が出来ません。それ以外の原因でジョブ投入ができない場合、下記のファイルを弊社サポート宛てにお送り願えませんでしょうか。

  bsub コマンドを実行した際の出力
  lsload コマンドを実行した際の出力
  bhosts コマンドを実行した際の出力
  bjobs -u all コマンドを実行した際の出力
  ps ax | grep lsf コマンドを実行した際の出力
  /usr/share/lsf/log/ 以下にあるすべてのファイル

/usr/share/lsf/log/以下にあるすべてのファイルについては、以下のコマンドを実行するとユーザのホームディレクトリに lsf-log.tgz というファイルが出来ますので、そのlsf-log.tgzファイルをお送りください。

  $ cd /usr/share/lsf
  $ tar zcvfp ~/lsf-log.tgz log
閉じる
クライアントノードをいくつかのグループに分けて管理したい。
下記の手順を参考にグループ分けを行って頂けますでしょうか。
lsb.hostsファイルを編集し設定変更を行ないます。

(1)/usr/share/lsf/conf/lsbatch/クラスタ名/configdir/lsb.hosts の編集
この例ではhpc01~hpc08の8ノードのうち、hpc01~hpc04、hpc05~hpc08の2つのグループに分ける設定を示しています。
------------<lsb.hosts>--------------
Begin Host

End Host
の下に下記のように追記します。

# This example is commented out
Begin HostGroup
GROUP_NAME GROUP_MEMBER # Key words
gr1 (hpc01 hpc02 hpc03 hpc04)
gr2 (hpc05 hpc06 hpc07 hpc08)
End HostGroup
--------------------------------------
(注):グループ名のgr1、gr2は任意の名称で構いません(但しホスト名と同じ名前は選択できません)。

(2)上記lsb.hostsを編集後にrootユーザで次のコマンドを実行して設定を反映させます。

  # badmin reconfig

(3)ジョブの投入方法は以下のように-mオプションを付与してホストグループを指定して実行します。

  $ bsub -m gr1 ./a.out (hpc01~hpc04でジョブ投入する場合)
閉じる
ジョブを一度中断し、その後ジョブを再開したい。
下記のコマンドを実行してください。

  $ bstop $JOBID :ジョブの中断
  $ bresum $JOBID :ジョブの再開
閉じる
メインテナンスのためホストを閉鎖し、その後ホストを解放したい。
下記のコマンドをrootユーザで実行してください。

  # badmin hclose
  $HOSTS :ホストの閉鎖

  # badmin hopen
  $HOSTS :ホストの開放
閉じる
新しくインストールしたアプリケーションがLSFで実行できない。
クラスタ構成では各ノードでアプリケーションが利用できるようになっていなければなりません。
全てのノードにアプリケーションをインストールするか、アプリケーションをNFSで共有する必要があります。
閉じる
インテルコンパイラで自動並列化オプション-parallelを使用した場合、LSFでジョブ投入できるか。
自動並列化したプログラムをLSFで投入される際には次の点にご注意ください。

1.環境変数 OMP NUM THREADSを2に設定しておく。

  setenv OMP NUM THREADS 2   (csh、tcshの場合)
  export OMP NUM THREADS=2   (bashの場合)

2.bsubコマンドでジョブを投入する際にCPUの予約をしておく。

  $ bsub -n 2 program

1の設定を行わない場合には並列動作が行われません。2のようにCPUを予約しないで実行した場合、LSFは1つのジョブを投入していると考えてしまいます。そのため実際には2CPUを使用しているのに1CPUしか使用していないと解釈され、複数ジョブが投入された際にCPUが空いているものとし搭載 CPU数を超えるプロセスのジョブが投入されるてしまう不具合が確認されております。
閉じる
一連のジョブの最後の処理の完了を検出し後処理を起動するようなことをLSFで行いたい。
LSFにジョブを流すだけではこちらが最後と思っているジョブでも、処理の進み具合によって最後にならない場合があります。一連のジョブの最後の処理の完了を検出するためにジョブ間の依存関係を検出する必要があります。 bsubコマンドで-wオプションを用いれば依存関係の検出が可能です。

詳しくはbsubオンラインマニュアルをご参照ください。man bsubにて閲覧可能です。
閉じる
LSFの再起動方法が知りたい。
LSFの再起動はrootで以下のコマンドを実行します。

lsadmin reconfig

LSFの環境がセットされていない場合は、先に以下のコマンドでLSFの環境をセットして下さい。

(tcshの場合)
source /usr/share/lsf/conf/cshrc.lsf
(bashの場合)
. /usr/share/lsf/conf/profile.lsf
閉じる
LSFは、コマンドを通して起動する全てのアプリケーション(またはタスク)に有効か。
LSFでは、通常はコマンドラインから実行します。コマンドラインから実行できるものは、大抵はLSF上から実行ができます。その際はbsubというコマンドを使用し、引数に実行する内容を指定します。

GUIで実行時に必要なファイルを作成して、ジョブをコマンドラインから実行することは可能です。GUI側でSubmit等のボタンを押してジョブを実行する際は、アプリケーション側が対応していればLSFで動作します。
閉じる
C++のスレッド処理が含まれているタスクを実行した場合、問題なく動作するか。
LSFでスレッドを使用したジョブを扱うことができます。

例えば、OpenMPのようなスレッドを使用する場合は次のようになります。

 (例1) 通常のジョブの実行
  export OMP_NUM_THREADS=8
  ./a.out
 (例2) LSFを使用してのジョブの実行
  export OMP_NUM_THREADS=8
  bsub -n 8 ./a.out
  bsub は LSFでジョブを投入するコマンドで、 -n は使用するCPUコア数を指定します。
閉じる
Contact

お問い合わせ

お客様に最適な製品をご提案いたします。まずは気軽にお問い合わせ下さい。
03-5446-5532

平日9:30~17:30(土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)