エラスティックハイパフォーマンスコンピューティング(E-HPC)は、PBS、SLURM、SGE などのスケジューラをサポートしています。このトピックでは、CLI を使用してスケジューラに基づいてジョブを送信する方法について説明します。
前提条件
ユーザーが作成されていること。詳細については、「ユーザーを管理する」をご参照ください。
ユーザーは、クラスタへのログオン、ソフトウェアのコンパイル、ジョブの送信に使用されます。この例では、次の設定が使用されます。
ユーザー名: testuser
ユーザーグループ: sudo 権限グループ
重要root ユーザーを使用してジョブを送信しないことをお勧めします。これにより、ジョブスクリプトの不適切な操作が原因でクラスタデータが破損するのを防ぎます。
関連ディレクトリにデータファイルと実行プログラムファイルを準備します。
この例では、次のパスが使用されます。
$HOME/test.py // 実行プログラムファイル $HOME/test.data // ジョブデータファイル
ジョブ実行コマンドの例:
test.py -i test.data
クラスタに接続する
E-HPC クライアントまたは E-HPC コンソールを使用して、クラスタに接続します。この例では、ユーザー名は testuser です。クラスタに接続すると、自動的に /home/testuser
にログオンします。
E-HPC クライアントを使用してクラスタにログオンする
クラスタのスケジューラは PBS である必要があります。 E-HPC クライアントをダウンロードしてインストールし、クライアントに必要な環境をデプロイしていることを確認します。詳細については、「E-HPC クライアントの環境をデプロイする」をご参照ください。
E-HPC クライアントを起動してログオンします。
左側のナビゲーションペインで、[セッション管理] をクリックします。
[セッション管理] ページの右上隅にある [ターミナル] をクリックして、ターミナルウィンドウを開きます。
E-HPC コンソールを使用してクラスタにログオンする
E-HPC コンソール にログオンします。
トップナビゲーションバーの左上隅で、リージョンを選択します。
左側のナビゲーションペインで、[クラスタ] をクリックします。
[クラスタ] ページで、クラスタを見つけて [接続] をクリックします。
[接続] パネルで、ユーザー名とパスワードを入力し、[SSH 経由で接続] をクリックします。
ジョブを送信する
スケジューラのタイプに基づいてジョブスクリプトファイルを作成し、次のジョブスクリプトをファイルにコピーしてから、ジョブを送信します。例:
自動スケーリングシナリオでは、E-HPC はメモリベースのスケーリングをサポートしていません。ジョブを送信するときに、必要な vCPU の数を指定することをお勧めします。
PBS
jobscript.pbs という名前のジョブスクリプトファイルを作成します。
vim jobscript.pbs
次のセクションでは、jobscript.pbs ファイルの内容の例を示します。 PBS CLI の詳細については、PBS 公式 Web サイト にアクセスしてください。
#!/bin/sh # PBS -l ncpus=4,mem=1gb // ジョブの実行に必要なコンピューティングリソース。 # PBS -l walltime=00:10:00 // ジョブの推定期間。 # PBS -o test_pbs.log // stdout の出力ファイル。 # PBS -j oe // stderr と stdout を上記の出力ファイルにリダイレクトします。 cd $HOME test.py -i test.data
ジョブを送信します。
qsub jobscript.pbs
SLURM
jobscript.slurm という名前のジョブスクリプトファイルを作成します。
vim jobscript.slurm
次のセクションでは、jobscript.slurm ファイルの内容の例を示します。 SLURM CLI の詳細については、SLURM 公式 Web サイト にアクセスしてください。
#!/bin/sh # SBATCH --job-name=slurm-quickstart // ジョブ名。 # SBATCH --output=test_slurm.log // stdout の出力ファイル。 # 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
SGE
jobscript.sh という名前のジョブスクリプトファイルを作成します。
vim jobscript.sh
次の例は、jobscript.sh の内容を示しています。 SGE CLI の詳細については、SGE 公式 Web サイト にアクセスしてください。
#!/bin/bash #$ -cwd // 実行パスを現在のパスとして指定します。 #$ -N test1 // ジョブ名。 #$ -q all.q // ジョブのキュー。 #$ -pe smp 2 // ジョブの実行に必要な vCPU の数。 #$ -l vf=1g // ジョブの実行に必要なメモリサイズ。 #$ -o /home/testuser // stdout ログパス。 #$ -e /home/testuser // エラーログパス。 cd $HOME test.py test.data
重要E-HPC クラスタは、自動スケーリング中にジョブで必要な vCPU の数に基づいて ECS インスタンスタイプを選択します。 SGE ジョブスクリプトを記述する場合は、-pe smp を使用してジョブで必要な vCPU の数を指定する必要があります。
ジョブを送信します。
qsub -V jobscript.sh