このトピックでは、コンソール、コマンドラインインターフェイス (CLI)、および E-HPC Portal を使用してジョブを送信する方法について説明します。
前提条件
-
クラスターとそのノードが 実行中 の状態であること。
-
クラスターユーザーが作成されていること。 詳細については、「ユーザー管理」をご参照ください。
-
コンソールを使用してジョブを送信する場合は、ジョブスクリプトがクラスター内に存在すること。
-
CLI を使用してジョブを送信する場合、クラスターのスケジューラは Slurm、OpenPBS であること。
コンソールを使用したジョブの送信
-
クラスタの詳細 ページに移動します。
-
E-HPC コンソールにログインします。
-
上部のナビゲーションバーの左側で、リージョンを選択します。
-
左側のナビゲーションウィンドウで、クラスタ をクリックします。
-
クラスター一覧 ページで、管理するクラスターを見つけ、クラスター名 をクリックします。
-
-
左側のナビゲーションウィンドウで、ジョブ管理 をクリックします。
-
ジョブ作成 をクリックし、次のパラメーターを設定します。
-
基本設定
パラメーター
必須
説明
ジョブ名
はい
ジョブの名前。
スケジューラキュー
はい
ジョブが実行されるクラスター内のキュー。
Job Array の実行
いいえ
スケジューラのジョブ配列機能を有効にするかどうかを指定します。 ジョブ配列を使用すると、ジョブ実行のカスタムルールを定義できます。
-
最小インデックス: ジョブ配列内のタスクの開始インデックス。
-
最大インデックス: ジョブ配列内のタスクの終了インデックス。
-
ステップ: タスクインデックス間の増分。 指定しない場合、デフォルト値は 1 です。
ジョブの優先度
いいえ
ジョブの実行優先度はスケジューラに依存します。 値は 0 以上の整数です。 値が大きいほど優先度が高くなります。
説明クラスターのスケジューリングポリシーがジョブを優先するように設定されている場合、優先度の高いジョブが先に実行されるようにスケジュールされます。 複数のジョブを送信する場合、先に実行する必要があるジョブにはより高い優先度を設定できます。
コマンドの実行
はい
ジョブを実行するためにスケジューラに送信されるコマンド。 これは、
/home/testディレクトリ内のjob.pbsなどのジョブスクリプト、またはコマンド文字列です。-
スクリプトファイルが実行可能な場合は、
./job.pbsのように相対パスを入力します。 -
スクリプトファイルに実行権限がない場合は、実行コマンドを入力し、その前に
--を付けます。 例:--/opt/mpi/bin/mpirun /home/test/job.pbs。
ノード数
いいえ
ジョブの計算ノード数。
CPU のリクエスト
いいえ
各ノードがジョブのタスクを実行するために必要なメモリと CPU リソース。
説明ジョブの実際の要件に基づいてこれらのパラメーターを設定してください。 メモリが不足すると、ジョブが失敗したり、パフォーマンスが低下したりする可能性があります。
メモリのリクエスト
いいえ
-
-
詳細設定
パラメーター
必須
説明
標準出力パス
いいえ
Linux の標準エラー (stderr) と標準出力 (stdout) ストリームのリダイレクトパス。 パスには出力ファイル名を含める必要があります。
-
stdout: 標準出力ファイルへのパス。
-
stderr: 標準エラーファイルへのパス。
クラスターユーザーは、このパスに対する書き込み権限を持っている必要があります。 デフォルトでは、出力ファイルはスケジューラの設定に基づいて生成されます。
標準エラーパス
いいえ
環境変数
いいえ
ジョブのカスタム環境変数。 ジョブスクリプト内からこれらの変数にアクセスできます。
-
-
-
設定を確認した後、ページ下部の 作成の確認 をクリックします。
CLI を使用したジョブの送信
-
クラスターのログインノードに接続します。 詳細については、「クラスターへの接続」をご参照ください。
-
クラスターのスケジューラに応じて、ジョブスクリプトを作成して送信します。 以下のセクションで例を示します。
説明auto scaling シナリオでは、E-HPC はメモリベースのスケーリングをサポートしていません。 ジョブを送信する際には、ジョブが必要とする vCPU の数を指定することを推奨します。
Slurm
-
次のコマンドを実行して、jobscript.slurm という名前のジョブスクリプトを作成および編集します:
vim jobscript.slurm以下に jobscript.slurm ファイルの内容の例を示します。 Slurm コマンドの詳細については、「Slurm 公式ドキュメント」をご参照ください。
#!/bin/sh #SBATCH --job-name=slurm-quickstart # ジョブ名 #SBATCH --output=test_slurm.log # 標準出力ファイル #SBATCH --nodes=1 # ノード数 #SBATCH --ntasks=1 # タスク数 #SBATCH --cpus-per-task=1 # タスクあたりの vCPU 数 #SBATCH --time=00:10:00 # 推定ランタイム #SBATCH --mem-per-cpu=1024 # vCPU あたりのメモリ cd $HOME test.py test.data -
次のコマンドを実行してジョブを送信します:
sbatch jobscript.slurm
OpenPBS
-
次のコマンドを実行して、jobscript.pbs という名前のジョブスクリプトを作成および編集します:
vim jobscript.pbs以下に jobscript.pbs ファイルの内容の例を示します。 OpenPBS コマンドの詳細については、「OpenPBS 公式ドキュメント」をご参照ください。
#!/bin/sh #PBS -l ncpus=4,mem=1gb # 必要な計算リソース #PBS -l walltime=00:10:00 # 最大ウォールタイム #PBS -o test_pbs.log # 標準出力ファイル #PBS -j oe # 標準エラーを標準出力にマージ cd $HOME test.py -i test.data -
次のコマンドを実行してジョブを送信します:
qsub jobscript.pbs
-
E-HPC Portal を使用したジョブの送信
詳細については、「サブミッターを使用したジョブの送信」をご参照ください。
関連ドキュメント
CreateJob API を呼び出してジョブを送信することもできます。