--- title: 会話型処理 --- [toc] ## 会話型実行のためのコマンド{#command} 会話型実行はSlurmのインタラクティブバッチ機能を使用して行います。簡易に実行するためのツールとして _**tssrun**_ コマンドを用意しています。 tssrun コマンドの後ろに実行したいプログラムおよび引数を指定することでジョブを実行することが可能です。 ジョブ実行時に自動的に設定される環境変数については[こちら](/run/tips#env_val)をご参照ください。 コマンド | 説明 | 実行例 | 備考 :-----------------------------------------------:|:--------------------:|:----------------:|------------------------------------------------------------ tssrun | 計算ノードでプログラムを実行する | tssrun ./a.out | ### コマンドオプション{#option} オプション | 説明 | 指定例 :-----------------------------:|:-------------------------------------------------------------:|:---------------------: -p _QUEUENAME_ | バッチ処理用キューの指定 | tssrun -p gr19999b ./a.out -t _HOURS_:_MINUTES_:_SECONDS_ | 経過時間上限値の指定(単位は時:分:秒) | tssrun -p gr19999b -t 1:0:0 ./a.out --rsc p=_PROCS_:t=_THREADS_:c=_CORES_:m=_MEMORY_ <br> or <br> --rsc g=_GPU_ | ジョブ割当リソース量の指定。詳細は[こちら](/run/resource#resouce) | tssrun -p gr19999b --rsc p=4:t=8:c=8:m=2G ./a.out <br> or <br> tssrun -p gr19999b --rsc g=1 ./a.out --x11 | 計算ノードでGUIプログラムを実行する | tssrun -p gr19999b --x11 xeyes * 指定例に、*gr19999b* と記載の部分はご自身のキュー名に変更していただく必要があります。 * コマンドを入力すると、いくつかのメッセージが表示された後、プログラムの実行が開始されて結果が表示されます。 * 会話型実行用の計算ノードが混雑している場合、メッセージ表示後すぐに実行が開始されないことがあります。 * パーソナルコース、グループコース用のキューで会話型実行を行うことも可能です。 ## ジョブの投入 **実行例1:** システムBのMPIプログラムの場合 ```nohighlight $ tssrun -p gr19999b --rsc p=4 ./a.out salloc: Granted job allocation 102362 salloc: Waiting for resource configuration salloc: Nodes cnode3 are ready for job My name is cnode3. My rank is 1. My name is cnode3. My rank is 2. My name is cnode3. My rank is 3. My name is cnode3. My rank is 0. salloc: Relinquishing job allocation 102362 exit code: 0 ``` **実行例2:** GUIプログラムを実行する場合 ```nohighlight $ tssrun -p gr19999b --x11 xeyes salloc: Granted job allocation 102366 salloc: Waiting for resource configuration salloc: Nodes <計算ノード名> are ready for job (Xアプリケーションが起動する) ``` <!-- ## 会話型実行における制限{#limit} **パーソナルコースキューやグループコースキューを利用しない**会話型実行においては、以下のような制限が適用されます。 エントリコース以外のサービスコースを申し込まれている方は、[-pオプション](#option)を参考にキューを指定することで、以下の制限を回避することができます。 #### ノードの共有 会話型実行用のノードはシステムごと(システムA,B,Cそれぞれta, tb, tcと呼ばれるキューに紐づけ)に用意されており、すべてのユーザがそれぞれのノードを共有して利用する形態となります。プログラム実行時はCPUコアを占有して排他的に実行するため、混雑時は実行が開始されるまでに時間がかかる場合があります。 #### ジョブの同時実行件数 **ひとりのユーザは同時に1個のジョブのみ実行(RUN)** できます。 2個目以降のジョブは待ち(PEND)になります。 #### 利用可能なリソース上限 1ユーザが同時に利用できるCPUコア数、メモリ量には制限がかかっています。 [--rscオプション](#option)を指定することでCPUコア数やメモリ量を上限まで増やすことができます。 システム | A | B | C | G | cloud :------------:|:-----:|:-----:|:------:|:----:|:------: CPUコア数標準 | 1 | 1 | 1 | 1 | 1 CPUコア数上限 | 112 | 112 | 112 | 36 | 36 メモリ量標準 | 1024M |4096MB |18432MB |7168MB|13312MB メモリ量上限 | 120G |500G |2030G |500G |500G #### プログラムの経過時間制限 会話型でプログラムを実行する場合、経過時間が標準の制限を超えると、プログラムは強制終了されます。 [-tオプション](#option) を指定することで、時間を上限まで増やすことができます。 システム | A | B | C | G | Cloud :------------------------: |:-----:|:-----:|:-----:|:-----:|:-----: 経過時間標準(hour:minute) | 1:00 | 1:00 | 1:00 | 1:00 | 1:00 経過時間上限(hour:minute) | 24:00 | 24:00 | 24:00 | 24:00 | 24:00 --> ## ジョブ情報の確認{#report} tssrunコマンドによる会話型実行では、ジョブ情報を確認することが可能です。 コマンド | オプション | 説明 | 実行例 :------:|:-----:|:----------------------:|:------------------: sacct | -j _JOBID_ | 会話型実行のジョブ情報を表示する | sacct -j 102362 コマンドとオプションに続けて、ジョブIDを指定する必要があります。ジョブIDは、tssrunコマンド実行時に表示される `salloc: Granted job allocation XXXXXX`のXXXXXXの部分です。 会話型実行の終了後、24時間以上経過したものについては表示できません。 #### 会話型実行が異常終了した場合のメッセージ 会話型実行が異常終了した場合、ジョブ情報中に終了理由が表示されます。 * メモリ制限による終了 (ノード全体のメモリの圧迫によるもの) ```nohighlight Can't malloc: Cannot allocate memory ``` * 経過時間制限による終了 ```nohighlight slurmstepd: error: *** STEP 102368.0 ON <計算ノード名> CANCELLED AT 2022-11-04T15:34:36 DUE TO TIME LIMIT *** ```