コンテンツにスキップ

5. ジョブスケジューリングシステム

本システムのジョブスケジューリングには、シングルジョブ・並列ジョブを優先度や必要なリソースに従い効率的にスケジューリングする、「Altair Grid Engine」を採用しています。

5.1. 計算ノードの種類

5.1.1. ベアメタル環境

5.1.1.1. 利用可能な資源タイプ

本システムでは計算ノードを論理的に分割した資源タイプを利用して、システムリソースを確保します。

ジョブ投入の際には、資源タイプをいくつ使うかを指定します(例:-l node_f=2)。利用できる資源タイプの一覧を以下に示します。

資源タイプ 使用物理CPUコア数 メモリ (GB) GPU 数 ローカルスクラッチ領域 (GB)
node_f 192 768 4 1920
node_h 96 384 2 960
node_q 48 192 1 480
node_o 24 96 1/2 240
gpu_1 8 96 1 240
gpu_h 4 48 1/2 120
cpu_160 160 368 0 96
cpu_80 80 184 0 48
cpu_40 40 92 0 24
cpu_16 16 36.8 0 9.6
cpu_8 8 18.4 0 4.8
cpu_4 4 9.2 0 2.4
  • 「使用物理CPUコア数」、「メモリ(GB)」、「GPU数」は、各資源タイプ1つあたりの使用可能な量です。
  • [資源タイプ]=[個数]で同じ資源タイプを複数指定できます。資源タイプの組み合わせはできません。
  • 実行可能時間の最大値は24時間です。
  • TSUBAME4では「同時に実行可能なジョブ数」や「実行可能な総スロット数」など各種制限値があります。 (スロット=資源タイプ毎に設定されている物理CPUコア数x利用ノード数(qstatコマンドのslotsと同等))

現在の制限値の一覧は以下のURLで確認できます。

https://www.t4.gsic.titech.ac.jp/resource-limit

利用状況に応じて随時変更する可能性がありますのでご注意ください。

5.1.2. コンテナ環境

本システムでは、ソフトウェアの依存関係によりホストOSで動作させることが困難なアプリケーションを利用可能とするために、Apptainer (旧 Singularity)を利用したアプリケーションコンテナを提供しています。

Apptainer についてはフリーウェアの章を参照ください。

5.2. ジョブの投入

本システムでジョブを実行するには、ログインノードへログインしてqsubコマンドを実行します。

5.2.1. バッチジョブの流れ

ジョブを投入するためにはジョブスクリプトを作成し投入します。 または、コマンドラインにキュー名などを指定してジョブを投入することもできます。 投入コマンドは”qsub”です。

  • ジョブスクリプトの作成
  • qsubを使用しジョブを投入
  • qstatなどを使用しジョブの状態確認
  • 必要に応じてqdelを使用しジョブのキャンセル
  • ジョブの結果確認

qsubコマンドは、課金情報(TSUBAMEポイント)を確認し、ジョブを受け付けます。

5.2.2. ジョブスクリプト

ジョブスクリプトの記述方法を以下に示します。

#!/bin/sh
#$ -cwd
#$ -l [資源タイプ] =[個数]
#$ -l h_rt=[経過時間]
#$ -p [プライオリティ]

<!-- T4では不要
[moduleの初期化]
-->

[プログラミング環境のロード]

[プログラム実行]

Warning

shebang(#!/bin/shの箇所)は必ずジョブスクリプトの先頭に来るようにして下さい。

  • [プログラミング環境のロード]
    moduleコマンドを用い、必要な環境のロードを行います。
    intelコンパイラをロードする場合の例は以下となります。
module load intel
  • [プログラム実行]
    プログラムの実行を行います。
    バイナリがa.outの場合の例は以下となります。
./a.out

資源タイプの指定などはコマンドラインで指定するか、またはスクリプトファイルの最初のコメントブロック(#$)に記述することで有効になります。 資源タイプ、実行時間は必須項目になるため必ず指定するようにしてください。

qsubコマンドの主なオプションを以下に示します。

オプション 説明
-l [資源タイプ]=[個数] (必須) 資源タイプおよびその個数を指定します。
-l h_rt=[経過時間] (必須) Wall time(経過時間)を指定します。[[HH:]MM:]SSで指定することができます。HH:MM:SやMM:SSやSSのように指定することができます。
-N ジョブ名を指定します。(指定しない場合はスクリプトファイル名)
-o 標準出力ファイル名を指定します。
-e 標準エラー出力ファイル名を指定します。
-j y 標準エラー出力を標準出力ファイルに統合します。
-m ジョブについての情報をメールで送信する条件を指定します。
a バッチシステムによりジョブが中止された場合
b ジョブの実行が開始された場合
e ジョブの実行が終了した場合
abeのように組み合わせることも可能です。
メールオプションをつけて大量のジョブを投入すると、大量のメールによってメールサーバーに負荷が掛かり、攻撃と検知され他の利用者もまとめて東工大からのメールを遮断される可能性があります。そのようなジョブを流す必要がある場合は、メールオプションを外すか一度のジョブで実行できるようスクリプトの見直しを行ってください。
-p(プレミアムオプション) ジョブの実行優先度を指定します。 -3,-4を指定すると通常よりも高い課金係数が適用されます。設定値の-5,-4,-3は課金規則の優先度0,1,2に対応します。
-5 : 標準の実行優先度です。 (デフォルト)
-4 : 実行優先度は-5より高く,-3より低くなります。
-3 : 最高の実行優先度となります。
優先度の値は全て負の数です。マイナス記号を含めて指定してください。
-t タスクIDの範囲を指定します。
開始番号-終了番号[:ステップサイズ] で指定することができます。
-hold_jid 依存関係にあるジョブIDを指定します。
指定された依存ジョブが終了しなければ、発行ジョブは実行されません。
-ar 予約ノードを利用する際に 予約AR IDを指定します。

本システムではジョブ投入環境の環境変数渡しの-Vオプションは利用できません。ご注意ください。

5.2.3. ジョブスクリプトの記述例

5.2.3.1. シングルジョブ/GPUジョブ

シングルジョブ(並列化されていないジョブ)を実行する時に作成するバッチスクリプトの例を以下に示します。GPUを使用するジョブの場合は-l cpu_4=1-l gpu_1=1に変更し、GPUで利用するmoduleの読み込み以外はシングルジョブと同様になります。

#!/bin/sh
# カレントディレクトリでジョブを実行する場合に指定
#$ -cwd

#$ -l cpu_4=1
# 実行時間を指定
#$ -l h_rt=1:00:00
#$ -N serial

# CUDA環境の読込
module load cuda
# Intel Compiler環境の読込
module load intel
./a.out

5.2.3.2. SMP並列

SMP並列ジョブを実行する時に作成するバッチスクリプトの例を以下に示します。計算ノードはハイパースレッディングが有効になっています。使用するスレッド数につきましては、明示的に指定してください。

#!/bin/sh
#$ -cwd
# 資源タイプF 1ノードを使用
#$ -l node_f=1
#$ -l h_rt=1:00:00
#$ -N openmp

module load cuda
module load intel
# ノード内に192スレッドを配置
export OMP_NUM_THREADS=192
./a.out

5.2.3.3. MPI並列

MPI並列ジョブを実行する時に作成するバッチスクリプトの例を以下に示します。使用するMPI環境により使い分けをお願いします。OpenMPIでスレーブノードにライブラリ環境変数を渡たすには、-x LD_LIBRARY_PATHを利用する必要があります。

Intel MPI環境

#!/bin/sh
#$ -cwd
# 資源タイプF 4ノードを使用
#$ -l node_f=4
#$ -l h_rt=1:00:00
#$ -N flatmpi

module load cuda
module load intel
# Intel MPI環境の読込
module load intel-mpi
# ノードあたり8プロセスMPI全32 プロセスを使用
mpiexec.hydra -ppn 8 -n 32 ./a.out

OpenMPI環境

#!/bin/sh
#$ -cwd
# 資源タイプF 4ノードを使用
#$ -l node_f=4
#$ -l h_rt=1:00:00
#$ -N flatmpi

# Open MPI環境の読込: Intelコンパイラ, CUDAが自動でロードされる
module load openmpi/5.0.2-intel
# ノードあたり8プロセスMPI全32 プロセスを使用
mpirun -npernode 8 -n 32 -x LD_LIBRARY_PATH ./a.out

5.2.3.4. プロセス並列/スレッド並列(ハイブリッド, MPI+OpenMP)

プロセス並列/スレッド並列(ハイブリッド, MPI+OpenMP)のジョブを実行する時に作成するバッチスクリプトの例を以下に示します。 使用するMPI環境により使い分けをお願いします。 OpenMPIでスレーブノードにライブラリ環境変数を渡たすには、-x LD_LIBRARY_PATHを利用する必要があります。

Intel MPI環境

#!/bin/sh
#$ -cwd
# 資源タイプF 4ノードを使用
#$ -l node_f=4
#$ -l h_rt=1:00:00
#$ -N hybrid

module load cuda
module load intel
module load intel-mpi
# ノード内に192スレッドを配置
export OMP_NUM_THREADS=192
# ノードあたりMPI 1プロセス、全4 プロセスを使用
mpiexec.hydra -ppn 1 -n 4 ./a.out

OpenMPI環境

#!/bin/sh
#$ -cwd
# 資源タイプF 4ノードを使用
#$ -l node_f=4
#$ -l h_rt=1:00:00            
#$ -N hybrid

# Open MPI環境の読込: Intelコンパイラ, CUDAが自動でロードされる
module load openmpi/5.0.2-intel
# ノード内に192スレッドを配置
export OMP_NUM_THREADS=192
# ノードあたりMPI 1プロセス、全4 プロセスを使用
mpirun -npernode 1 -n 4 -x LD_LIBRARY_PATH ./a.out

5.2.4. ジョブの投入

ジョブを実行するために、バッチリクエストを事前に作成する必要があります。 qsubコマンドにジョブ投入スクリプトを指定することで、ジョブがキューイングされ実行されます。 qsubコマンドを使用してジョブを投入する例を以下に示します。

$ qsub -g [TSUBAMEグループ] スクリプト名
オプション 説明
-g TSUBAMEグループ名を指定します。
スクリプトの中ではなくqsubコマンドのオプションとしてつけてください。
-q prior 定額制ジョブ
実行までに最大1時間の待ちが発生します。

5.2.4.1. お試し実行

Info

本機能は既にアカウントをお持ちの方(おもに自由にアカウント作成ができる学内利用者)向けの機能です。

TSUBAMEを自分の研究に利用できるか不安のある利用者がポイント購入をする前に動作確認できるよう、TSUBAMEではポイントを消費することなくプログラムの動作確認を行うことができるお試し実行機能が用意されています。
ジョブ投入時に -g オプションでグループを指定しないことで、ジョブをお試し実行として投入することができます。 この際、2並列以下、実行時間10分以下、優先度-5(最低) という制限がかかります。

Warning

お試し実行は課金前のプログラムの動作確認を目的とした利用に限り、実際の研究や計測を目的とした実行は行わないでください。
制限内でなら無償で無制限に利用してよいというわけではありません。

お試し実行機能はTSUBAMEを自分の研究に利用できるか不安のある利用者がポイント購入をする前に動作確認できるように用意されたものですので、これらの目的から大きく逸脱する、直接研究成果につながるような計算はお試し実行機能で行わないようお願いします。
授業において、教育目的の小規模な計算を実行したい場合はインタラクティブキューをご利用することもご検討ください。

お試し実行の場合、資源量に以下の制限が適用されます。

利用可能な最大ノード数(資源数) 2
利用最長時間 10分
同時実行数 1
資源タイプ 制限なし

また、お試し実行には「TSUBAMEグループ」を指定しないで実行する必要があります。
TSUBAMEグループを指定した場合=-gオプションを利用した場合はポイントが消費されますのでご注意下さい。

5.2.4.2. 定額制ジョブ

定額制でのジョブ投入は、-q prior をつけます。その他のオプションは従量制と同じです。

$ qsub -q prior -g [TSUBAMEグループ] スクリプト名

定額制についての詳細はこちらをご覧下さい。

Warning

定額制グループのジョブであっても、 -q prior の指定がない場合、従量制ジョブとして処理されますので、ご注意ください。

5.2.5. ジョブの状態確認

qstatコマンドはジョブ状態表示コマンドです。

$ qstat [オプション]

qstatコマンドの主なオプションを以下に示します。

表 5-5 qstatコマンドのオプション

オプション 説明
-r ジョブのリソース情報を表示します。
-j [ジョブID] ジョブに関する追加情報を表示します。

qstatコマンドの実行結果の例を以下に示します。

$ qstat
job-IDprior  nameuser   statesubmit/start at  queuejclass  slotsja-task-ID
----------------------------------------------------------------------------------
307 0.55500 sample.sh testuser r 02/12/2023 17:48:10  all.q@r8i6n1A.default32
(以下省略)

qstatコマンドの表示内容を以下に示します。

表示項目 説明
Job-ID ジョブIDを表示します。
prior 優先度を表示します。
name ジョブ名を表示します。
user ジョブのオーナーを表示します。
state ジョブのステータスを表示します。
r 実行中
qw 待機中
h ホールド中
d 削除中
t 移動中
s サスペンド状態、一時停止
S サスペンド状態、キューのサスペンド状態
T サスペンド状態、制限超過によるサスペンド
E エラー状態
Rq 再スケジューリングされ待機中のジョブ
Rr 再スケジューリングされ実行中のジョブ
submit/start at 投入/開始日時を表示します。
queue キュー名を表示します。
jclass ジョブクラス名を表示します。
slots 利用しているスロット数を表示します。
(スロット=資源タイプ毎に設定されている物理CPUコア数x利用ノード数)
ja-task-ID アレイジョブに関してタスクIDを表示します。

5.2.6. ジョブの削除

バッチジョブを削除する場合には、qdelコマンドを使用します。

$ qdel [ジョブID]

以下にジョブをqdelした結果を示します。

$ qstat
job-IDprior  nameuser   statesubmit/start at  queuejclass  slotsja-task-ID
----------------------------------------------------------------------------------
307 0.55500 sample.sh testuser r 02/12/2023 17:48:10  all.q@r8i6n1A.default32

$ qdel 307
testuser has registered the job 307 for deletion

$ qstat
job-IDprior  nameuser   statesubmit/start at  queuejclass  slotsja-task-ID
----------------------------------------------------------------------------------

5.2.7. ジョブの結果確認

AGEのジョブの標準出力はジョブを実行したディレクトリの「スクリプトファイル名.oジョブID」というファイルに保管されます。 また、標準エラー出力は「スクリプトファイル名.eジョブID」です。

5.2.8. アレイジョブ

ジョブスクリプト内に含まれる操作をパラメータ化して繰り返し実行する機能としてアレイジョブ機能があります。 アレイジョブで実行される各ジョブをタスクと呼び、タスクIDによって管理されます。 またタスクIDを指定しないジョブIDは、タスクID全部を範囲とします。

Info

アレイジョブの各タスクはそれぞれ別のジョブとしてスケジュールされるため、タスクの数に比例したスケジュールの待ち時間が発生します。
各タスクの処理が短い場合や、タスク数が多い場合は、複数のタスクをまとめてタスクの数を減らすことを強くお勧めいたします。
例: 10000タスクを、それぞれ100タスク分の処理をするタスク100個にまとめる

タスク番号の指定は、qsubコマンドのオプションもしくはジョブスクリプト内で定義します。 投入オプションは -t(開始番号)-(終了番号):(ステップサイズ) として指定します。 ステップサイズが1の場合は省略可能です。以下に例を示します。

# ジョブスクリプト内にて以下を指定
#$ -t 2-10:2

上記例(2-10:2)では、開始番号 2、終了番号 10、ステップサイズ2 (1つ飛ばしのインデックス)が指定され、タスク番号 2、4、6、8、10 の 5 つのタスクによって構成されます。

各タスクのタスク番号は $SGE_TASK_IDという環境変数に設定されるため、この環境変数をジョブスクリプト内で利用することで、パラメータスタディが可能となります。 結果ファイルはジョブ名の後ろにタスクIDが付いた形で出力されます。

また、実行前/実行中に特定のタスクIDを削除したい場合には、以下のように qdelの-tオプションを使用します。

$ qdel[ジョブID] -t [タスクID]

5.3. 計算ノードの予約

計算ノードを予約することにより、24時間および72ノードを越えるジョブの実行が可能です。 予約実行の流れは以下のようになります。

  • TSUBAMEポータルから予約の実行
  • TSUBAMEポータルから予約状況の確認、キャンセル
  • 予約ノードに対してqsubを使用しジョブを投入
  • 必要に応じてqdelを使用しジョブのキャンセル
  • ジョブの結果確認
  • コマンドラインからの予約状況およびAR IDの確認

ポータルからの予約の実行、予約状況の確認、予約のキャンセルに関してTSUBAMEポータル利用の手引き 計算ノードの予約をご参照ください。

予約時間になりましたら、予約グループのアカウントでジョブの実行ができるようになります。 予約IDであるAR IDを指定したジョブ投入の例を以下に示します。

  • qsubで予約ノードにジョブを投入する場合
$ qsub -g [TSUBAMEグループ] -ar [AR ID] スクリプト名
  • qrshで予約ノードにインタラクティブジョブを投入する場合
$ qrsh -g [TSUBAMEグループ] -l [資源タイプ]=[個数] -l h_rt=[時間] -ar [AR ID]

予約実行で利用できる資源タイプはnode_f,node_h,node_q,node_oになります。その他の資源タイプは、予約では利用できません。

ジョブ投入後の ジョブの状態確認 は qstat コマンド、ジョブの削除はqdelコマンドを使用します。

また、スクリプトの書式は通常実行時のものと同じになります。

コマンドラインから予約状況及びAR IDを確認するためにはt4-user-info compute arを使用します。

xxxxx@login0:~> t4-user-info compute ar
ar_id   uid user_name         gid group_name                state     start_date           end_date        time_hour node_count      point return_point
-------------------------------------------------------------------------------------------------------------------------------------------------------
 1320  2005 A2901247         2015 tga-red000                  r   2023-01-29 12:00:00 2023-01-29 13:00:00          1          1      18000            0
 1321  2005 A2901247         2015 tga-red000                  r   2023-01-29 13:00:00 2023-01-29 14:00:00          1          1      18000            0
 1322  2005 A2901247         2015 tga-red000                  w   2023-01-29 14:00:00 2023-02-02 14:00:00         96          1    1728000      1728000
 1323  2005 A2901247         2015 tga-red000                  r   2023-01-29 14:00:00 2023-02-02 14:00:00         96          1    1728000      1728000
 1324  2005 A2901247         2015 tga-red000                  r   2023-01-29 15:00:00 2023-01-29 16:00:00          1         17     306000            0
 1341  2005 A2901247         2015 tga-red000                  w   2023-02-25 12:00:00 2023-02-25 13:00:00          1         18     162000       162000
 3112  2004 A2901239         2349 tgz-training                r   2023-04-24 12:00:00 2023-04-24 18:00:00          6         20     540000            0
 3113  2004 A2901239         2349 tgz-training                r   2023-04-25 12:00:00 2023-04-25 18:00:00          6         20     540000            0
 3116  2005 A2901247         2015 tga-red000                  r   2023-04-18 17:00:00 2023-04-25 16:00:00        167          1    3006000            0
 3122  2005 A2901247         2014 tga-blue000                 r   2023-04-25 08:00:00 2023-05-02 08:00:00        168          5   15120000            0
 3123  2005 A2901247         2014 tga-blue000                 r   2023-05-02 08:00:00 2023-05-09 08:00:00        168          5    3780000            0
 3301  2005 A2901247         2015 tga-red000                  r   2023-08-30 14:00:00 2023-08-31 18:00:00         28          1     504000            0
 3302  2005 A2901247         2009 tga-green000                r   2023-08-30 14:00:00 2023-08-31 18:00:00         28          1     504000            0
 3304  2005 A2901247         2014 tga-blue000                 r   2023-09-03 10:00:00 2023-09-04 10:00:00         24          1     432000            0
 3470  2005 A2901247         2014 tga-blue000                 w   2023-11-11 22:00:00 2023-11-11 23:00:00          1          1       4500         4500
 4148  2004 A2901239         2007 tga-hpe_group00             w   2024-04-12 17:00:00 2024-04-12 18:00:00          1          1       4500         4500
 4149  2005 A2901247         2015 tga-red000                  w   2024-04-12 17:00:00 2024-04-13 17:00:00         24          1     108000       108000
 4150  2004 A2901239         2007 tga-hpe_group00             w   2024-04-12 17:00:00 2024-04-12 18:00:00          1          1       4500         4500
-------------------------------------------------------------------------------------------------------------------------------------------------------
total :                                                                                                          818         97   28507500      3739500

コマンドラインから当月の予約の空き状況を確認するには、t4-user-info compute arsを使用します。

5.4. インタラクティブジョブの投入

本システムのジョブスケジューラでは、インタラクティブにプログラムやシェルスクリプトを実行する機能を有しています。
インタラクティブジョブを実行するためには、qrshコマンドを使用し、-lで資源タイプ、経過時間を指定します。
qrshでジョブ投入後、ジョブがディスパッチされるとコマンドプロンプトが返ってきます。
インタラクティブジョブの使用方法の流れ以下に示します。

#!bash
$ qrsh -g [TSUBAMEグループ] -l [資源タイプ]=[個数] -l h_rt=[経過時間]
Directory: /home/N/username
(ジョブ開始時刻)
username@rXnY:~> [計算ノードで実行したいコマンド]
username@rXnY:~> exit

-gオプションのグループ指定が未指定の場合は資源タイプ2つまで、経過時間10分間まで、優先度-5の「お試し実行」となります。

資源タイプ node_f、1ノード、経過時間 10分を指定した例

#!bash
$ qrsh -g [TSUBAMEグループ] -l node_f=1 -l h_rt=0:10:00
Directory: /home/N/username
(ジョブ開始時刻)
username@rXnY:~> [計算ノードで実行したいコマンド]
username@rXnY:~> exit

プロンプトにexitと入力することでインタラクティブジョブを終了します。

インタラクティブジョブでコンテナを利用する使用方法を以下に示します。インタラクティブジョブでは複数コンテナの指定はできません。

$ qrsh -g [TSUBAMEグループ] -jc [コンテナ資源名] -adds l_hard h_rt [経過時間] -ac [イメージ名]

5.4.1. インタラクティブノードを利用したX転送

qrshで接続したノードから直接X転送を行う場合は、下記の手順にて接続ください。

  1. X転送を有効にしてログインノードにssh
  2. qrshコマンドの実行

コマンド実行例

例では資源タイプcpu_4、1ノードで2時間のジョブを実行しています。

割り当てノードはコマンド実行時に空いているノードですので、明示的にノードを指定することはできません。

# qrshの実行
$ qrsh -g [TSUBAMEグループ] -l cpu_4=1 -l h_rt=2:00:00
username@rXnY:~> module load [読み込みたいアプリケーション]
username@rXnY:~> [実行したいアプリケーションの実行コマンド]
username@rXnY:~> exit

5.4.2. ネットワーク系アプリケーションへの接続

Webブラウザ等でアプリケーションを操作する必要がある場合、SSHポートフォワードを用いて手元のWebブラウザからアクセスすることが可能です。

(1) qrshで接続したインタラクティブノードのホスト名の取得

$  qrsh -g tga-hpe_group00 -l cpu_4=1 -l h_rt 0:10:00
$ hostname
r1n1
$ [Webブラウザ等からのアクセスが必要なプログラムの実行]

qrshでインタラクティブジョブを起動後、そのマシンのホスト名を取得します。 上記の例では、ホスト名としてr1n1がホスト名になります。 この、コンソールでの作業はおわりですが、アプリケーションによる作業が終了するまで、そのまま維持してください。

(2) ssh接続元のコンソールよりSSHのポートフォワードを有効にして接続する。(ログインノードやインタラクティブジョブ上ではありません)

ssh -i /path/to/key -l username -L 8888::<接続するアプリケーションのネットワークポート> login.t4.gsic.titech.ac.jp
接続するアプリケーションのネットワークポートは、アプリケーションごとに異なります。詳しくは、各アプリケーションの説明書もしくは、アプリケーションの起動メッセージをご確認ください。

Tips

TSUBAME4にSSHするコンソールによっては、SSHのポートフォワードの設定が異なます。 詳しくは、各SSHコンソールの説明をご確認いただくか、FAQをご参照ください。

(3) Webブラウザでアプリケーションに接続する。 手元のコンソール上でWebブラウザ (Microsoft Edge, Firefox, Safari等)を立ち上げ、http://localhost:8888/にアクセスしてください。

5.4.3. インタラクティブキュー

インタラクティブキューは、同じリソースをユーザ間で共有することで、混雑時にもノード確保に失敗しにくく、可視化や対話的なプログラムを素早く開始できるように用意された環境です。

インタラクティブキューへのジョブの投入方法は以下のとおりです。

Info

学内ユーザ(tgz-edu)とアクセスカードユーザ(ログイン名がAxxxのユーザ)に限り、グループの指定を省略して無償で実行できます。

iqrsh -g [TSUBAMEグループ] -l h_rt=<時間>

※インタラクティブキューではCPU/GPUのオーバーコミットが許可されていることにご注意下さい。
インタラクティブキューの制限値一覧はこちらをご確認下さい。

5.5. 計算ノードへのSSHログイン

資源タイプ node_f でジョブを行ったノードには直接sshでログインできます。
確保したノードは以下の手順により、確認することができます。

$ qstat -j 1463
==============================================================
job_number:                 1463
(途中省略)
exec_host_list        1:    r8n3:28, r8n4:28       ← 確保したノード  r8n3、r8n4
(以降省略)

Info

計算ノードにsshした際はsshしたプロセスのGIDがtsubame-users(2000)となっている為、お試し実行の場合を除いて、ssh直後の状態では実行している自分のジョブのプロセスが見えず、gdbでアタッチもできません。
見えるようにするにはssh後にジョブを実行したグループ名で以下を実行して下さい。

newgrp <グル-プ名>
又は
sg <グループ名>

5.6. 計算ノード上のストレージの利用

5.6.1. ローカルスクラッチ領域

SSDをローカルスクラッチ領域として使用することができます。

利用する際には、/local/${JOB_ID}(アレイジョブの場合は /local/${JOB_ID}${SGE_TASK_ID}) にローカルスクラッチ領域のパスが設定されます。ジョブスクリプトの中で、作業領域のパスを指定することにより参照可能です。

ローカルスクラッチ領域は各計算ノードの個別領域となり共有されていないため、ジョブスクリプト内からの入力ファイルと出力ファイルをローカルホストにステージングする必要があります。

下記の例では、使用する計算ノードが1ノードの場合に、ホームディレクトリからローカルスクラッチ領域にインプットデータセットをコピーし、結果をホームディレクトリに返します。 (複数ノードは対応していません)

#!/bin/sh
# 計算に必要な入力ファイルのコピー
cp -rp $HOME/datasets /local/${JOB_ID}
# 入力、出力を指定する計算プログラムの実行
./a.out /local/${JOB_ID}/datasets /local/${JOB_ID}/results
# 必要な結果ファイルのコピー
cp -rp /local/${JOB_ID}/results $HOME/results

Tips

/local/${JOB_ID} はジョブ終了時に削除されます。