すべてのプロダクト
Search
ドキュメントセンター

Elastic High Performance Computing:CLI を使用してジョブを送信する

最終更新日:Jan 11, 2025

エラスティックハイパフォーマンスコンピューティング(E-HPC)は、PBS、SLURM、SGE などのスケジューラをサポートしています。このトピックでは、CLI を使用してスケジューラに基づいてジョブを送信する方法について説明します。

前提条件

  1. ユーザーが作成されていること。詳細については、「ユーザーを管理する」をご参照ください。

    ユーザーは、クラスタへのログオン、ソフトウェアのコンパイル、ジョブの送信に使用されます。この例では、次の設定が使用されます。

    • ユーザー名: testuser

    • ユーザーグループ: sudo 権限グループ

    重要

    root ユーザーを使用してジョブを送信しないことをお勧めします。これにより、ジョブスクリプトの不適切な操作が原因でクラスタデータが破損するのを防ぎます。

  2. 関連ディレクトリにデータファイルと実行プログラムファイルを準備します。

    この例では、次のパスが使用されます。

    $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 クライアントの環境をデプロイする」をご参照ください。

    1. E-HPC クライアントを起動してログオンします。

    2. 左側のナビゲーションペインで、[セッション管理] をクリックします。

    3. [セッション管理] ページの右上隅にある [ターミナル] をクリックして、ターミナルウィンドウを開きます。

  • E-HPC コンソールを使用してクラスタにログオンする

    1. E-HPC コンソール にログオンします。

    2. トップナビゲーションバーの左上隅で、リージョンを選択します。

    3. 左側のナビゲーションペインで、[クラスタ] をクリックします。

    4. [クラスタ] ページで、クラスタを見つけて [接続] をクリックします。

    5. [接続] パネルで、ユーザー名とパスワードを入力し、[SSH 経由で接続] をクリックします。

ジョブを送信する

スケジューラのタイプに基づいてジョブスクリプトファイルを作成し、次のジョブスクリプトをファイルにコピーしてから、ジョブを送信します。例:

説明

自動スケーリングシナリオでは、E-HPC はメモリベースのスケーリングをサポートしていません。ジョブを送信するときに、必要な vCPU の数を指定することをお勧めします。

PBS

  1. 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
  2. ジョブを送信します。

    qsub jobscript.pbs

SLURM

  1. 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
  2. ジョブを送信します。

    sbatch jobscript.slurm

SGE

  1. 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 の数を指定する必要があります。

  2. ジョブを送信します。

    qsub -V jobscript.sh