IPC

Information
Processing
Center

総合情報処理センター
内 線 7474
E‑mail center@cc.kagoshima‑u.ac.jp
http://w3.cc.kagoshima‑u.ac.jp/
URL
監修 広報専門委員会

総合情報処理センタークリップボード＜その 16＞

研究利用サーバ群へのジョブ投入方法
フロントエンドサーバ（kinkoh）からアプリケーションサーバ（syohko）、高速演算サーバ（ohara）、画像処理サーバ（miyama）を利用する場合は、ジョブ管理機構である LSF システムを使ってジョブを投入することになります。フロントエンドサーバから自分を含む他のサーバに対してプログラムの実行を要求することを、「ジョブの投入」といいます。ジョブを投入することによって処理を実行することを「バッチ処理」と言います。これに対して、フロントエンドサーバ上のアプリケーションを利用する場合など、対話的に処理を実行することを「会話処理」といいます。大型計算機センターのシステムなどでは、ジョブの投入によってバッチ処理のみができる場合が大半ですが、センターの研究利用システムではフロントエンドサーバから他のサーバに対して会話処理を行うジョブを投入することも可能となっています。
研究利用サーバ群では、ジョブの制御は LSF という仕組みを使って行われます。LSF のコマン
ド類は/opt1/lsf/bin と/opt1/lsf/scripts にありますので、これらを.cshrc 中などで、パスに加えておいて下さい。
各ホストごとのジョブ状況の確認
各ホストごとのジョブ状況を確認するには、bhosts コマンドを利用します。コマンドを実行すると以下のように表示されます。
HOST̲NAMESTATUS

JL/UMAX

NJOBS

RUN

SSUSP

USUSP

RSV

kinkoh

ok‑

‑

00000

kiriko

ok‑

‑

00000

miyamaok‑‑

00000ohara

ok‑‑

00000

syohkook‑‑00000HOST̲NAME ホスト名を示します。
STATUS

ジョブの投入を受け付けている場合「ok」となります。kiriko についても表示されますが、kinkoh からのジョブ投入はできません。

JL/U

ホストごとのユーザあたりの最大ジョブ数。「‑」は制限なしを示します。

MAX

ホストごとの最大ジョブ数。「‑」は制限なしを示します。

NJOBS

ホストで実行中、または中断中のジョブの数。

RUN

ホストで実行中のジョブの数。

SSUSP

LSF によって中断中のジョブの数。

USUSP

ユーザーによって中断中のジョブの数。

RSV

保留状態のジョブの数。

ジョブの投入ジョブを投入するには bsub コマンドを利用します。構文は以下の通りです。
bsub [‑I￨‑Ip￨‑Is] [‑q I￨X￨A￨B￨C] ‑m ホスト名 [‑i 標準入力ファイル] ‑o 標準出力ファイル￨‑u メールアドレス [‑e 標準エラー出力ファイル] コマンド￨< コマンドファイル‑I

ジョブを会話処理モードで投入します。省略した場合はバッチ処理モードでジョブが投入されます。ス
クリーンエディタ vi や SAS の会話処理など疑似端末が必要な場合は、‑I に替えて‑Ip として下さい。
リモートホストのシェルを会話処理モードで起動したい場合は‑I に替えて‑Is として下さい。

‑q

ジョブを投入するキューを指定します。省略した場合、‑I オプションが指定されている場合はキューI、指定されていない場合はキューA にジョブが投入されます。キューとして指定できるのは、I、X、A、B、C の５つです。詳細については「キューについて」を参照して下さい。

‑m[必須] ジョブを投入するホストを指定します。ホスト名は、kinkoh、syohko、miyama、ohara の４つから選択して下さい。省略すると負荷の軽いサーバを自動的に選択しますが、サーバによって実行ファイル形式が異なりますので、OS に標準で付属しているコマンドを実行する場合以外は、必ず指定するようにして下さい。ただし、kinkoh と syohko は実行ファイル形式が同じなので「‑m kinkoh syohko」とすることで、２つのサーバのうち負荷の軽い方を自動的に選んでジョブを投入することができます。

‑i

標準入力ファイルを指定します。省略した場合は/dev/null です。標準入力をファイルから与えたい場合に指定します。

‑o[‑u を指定しない場合必須] 標準出力ファイルを指定します。‑e オプションが指定されていない場合は、標準エラー出力もこのファイルに格納されます。‑I オプションを指定しないバッチ処理の場合は‑o オ
プションまたは‑u オプションを必ず指定するようにしてください。そうしないとエラーメッセージなどが残りません。「‑o %J.out」のように指定するとジョブ ID をファイル名に使うことができます。ジョブレポートもここで指定したファイルに格納されます。‑o と‑u の両方が指定されている場合は‑o のみが有効となります。

‑e

標準エラー出力ファイルを指定します。省略すると標準エラー出力は‑o オプションで指定したファイルに格納されます。

‑u[‑o を指定しない場合必須] バッチ処理モード(‑I オプションなし)でジョブを投入した時の出力のメール送信先を指定します。バッチ処理モードでは標準出力と標準エラー出力の出力先を‑o オプションまたは‑u オプションで指定しないと出力が失われます。‑o と‑u の両方が指定されている場合は‑o のみが有効となります。

コマンド 実行形式のファイル、またはシェルスクリプトを指定します。実行ファイルは‑m オプションで指定したジョブ投入ホストで動作可能な形式でなければなりません。「< コマンドファイル」として実行したいコマンドが記述されたスクリプトファイルを指定することもできます。コマンドは bsub コマンドを実行したディレクトリをカレントディレクトリとして実行されます。

キューについて研究利用サーバ群はすべてマルチタスクオペレーティングシステムである UNIX で動作しています。このため、同時に複数のジョブの実行が可能です。ところが、一人の利用者が多くのジョブを投入するとサーバの性能が低下し、他の利用者のジョブを十分な速度で実行できなくなって．．．．
しまいます。そこで、ジョブを投入できるいれものに相当する仕組みが用意されています。それが「キュー」です。現在のところ、キューに投入できるジョブ全体の数に制限はありませんが、一人が投入できるジョブの数、CPU 時間、使用可能メモリを表のように制限しています。今後の利用状況によっては制限値を変更することもありますが、その場合にはセンターニュース等でお知らせします。
キュー名優先度

Nice 値

投入可能ジョブ数

最大 CPU 時間

最大使用メモリIXABC

2020302010‑10‑10‑20‑10‑54 (会話処理のみ)
44 (バッチ処理のみ)
2
160 分 (1 時間)
60 分 (1 時間)
60 分 (1 時間)
240 分 (4 時間)
10,080 分 (1 週間)

1,000,000KB (1GB)
1,000,000KB (1GB)
512,000KB (512MB)
1,000,000KB (1GB)
2,000,000KB (2GB)

ジョブ状況の確認
ジョブの実行状況を確認する場合には bjobs コマンドを利用します。構文は以下の通りです。
bjobs [‑w] [‑l] [‑a] [‑d] [‑p] [‑s] [‑r] [‑q キュー名] [‑m ホスト名] [‑u ユーザー名￨all][ジョブ ID]‑w

ジョブ情報をワイド形式で表示します。

‑l

複数行形式でジョブ情報を詳細に表示します。

‑a

すべての終了していないジョブと最近１時間以内に終了したジョブのジョブ情報を表示します。

‑d

最近１時間以内に終了したジョブのジョブ情報を表示します。

‑p

保留中のジョブのジョブ情報を表示します。保留理由も合わせて表示されます。

‑s

中断中のジョブのジョブ情報を表示します。中断理由も合わせて表示されます。

‑r

実行中のジョブのジョブ情報を表示します。

‑q

指定したキューにあるジョブのジョブ情報を表示します。ジョブ ID が指定された場合は無視されます。

‑m

指定したホストでの実行を指示されたジョブのジョブ情報を表示します。ジョブ ID が指定された場合は無視されます。

‑u

指定したユーザーのジョブのジョブ情報を表示します。‑u all とすると全てのユーザーのジョブ情報を表示します。省略した場合は bjobs を実行したユーザーのジョブのみが表示されます。

ジョブ ID 指定したジョブ ID のジョブ情報を表示します。出力の各フィールドの意味は次の通りです(‑l を指定

しない場合)。
JOBIDLSF がジョブに割り当てたジョブ ID。

USERジョブを投入したユーザ。

STATジョブの現在のステータス。

QUEUEジョブが属するキューの名前。

FROM̲HOST

ジョブが投入されたホストの名前。

EXEC̲HOST

ジョブが実行されているホストの名前。

JOB̲NAME

ユーザによって割り当てられたジョブ名、または command 文字列。

SUBMIT̲TIME

ジョブの投入時間。

現在実行中、あるいは保留・中断中の自分のジョブ情報を確認する場合は bjobs、すべてのユーザーのすべての終了していないジョブと最近１時間以内に終了したジョブを確認する場合はbjobs ‑u all ? a とします。
ジョブの削除ジョブを削除するには bkill コマンドを利用します。構文は以下の通りです。
bkill [‑s シグナル] [‑q キュー名] [‑m ホスト名] [ジョブ ID]‑s

ジョブに指定したシグナルを送ります。省 略した場合は SIGINT、SIGTERM、SIGKILL が順に送られます。

‑q

キューを指定します。ジョブ ID が指定された場合は無視されます。

‑m

ホストを指定します。ジョブ ID が指定された場合は無視されます。

ジョブ ID 省略した場合は直前に投入したジョブが対象となります。

by 総合情報処理センター