翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
で最初のジョブを実行する AWS ParallelCluster
このチュートリアルでは、 で最初の Hello World ジョブを実行する方法について説明します。 AWS ParallelCluster
AWS ParallelCluster コマンドラインインターフェイス (CLI) または API を使用する場合、 AWS ParallelCluster イメージとクラスターを作成または更新するときに作成された AWS リソースに対してのみ料金が発生します。詳細については、「AWS で使用される のサービス AWS ParallelCluster」を参照してください。
PCUI はサーバーレスアーキテクチャ上に構築されており、ほとんどの場合、 AWS 無料利用枠カテゴリ内で使用できます。詳細については、「PCUI のコスト」を参照してください。
前提条件
-
AWS ParallelCluster がインストールされます。
-
AWS CLI がインストールされ、設定されています。
-
Amazon EC2 のキーペアがある。
インストールを確認する
まず、Node.js の依存関係を含む AWS ParallelCluster が正しくインストールおよび設定されていることを確認します。
$
node --version
v16.8.0
$
pcluster version
{
"version": "3.7.0"
}
これにより、 の実行中のバージョンが返されます AWS ParallelCluster。
初めてクラスターを作成する
では、最初のクラスターを作成していきましょう。このチュートリアルのワークロードのパフォーマンス負荷は高くないため、デフォルトのインスタンスサイズ t2.micro
を使います。(本稼働ワークロードの場合は、ニーズに最適なインスタンスサイズを選択します) クラスター hello-world
を呼び出してみましょう。
$
pcluster create-cluster \ --cluster-name hello-world \ --cluster-configuration hello-world.yaml
注記
AWS リージョン 使用する は、ほとんどのpcluster
コマンドで指定する必要があります。AWS_DEFAULT_REGION
環境変数、~/.aws/config
ファイルの [default]
セクションにある region
設定で指定されていない場合は、pcluster
コマンドラインで --region
パラメータを指定する必要があります。
設定に関するメッセージが出力に表示されたら、 AWS ParallelClusterを設定するために次のコマンドを実行する必要があります。
$
pcluster configure --config hello-world.yaml
pcluster create-cluster コマンドが正常に完了した場合は、次のような出力が表示されます。
{
"cluster": {
"clusterName": "hello-world",
"cloudformationStackStatus": "CREATE_IN_PROGRESS",
"cloudformationStackArn": "arn:aws:cloudformation:xxx:stack/xxx",
"region": "...",
"version": "...",
"clusterStatus": "CREATE_IN_PROGRESS"
}
}
以下の方法でクラスターの作成をモニタリングします。
$
pcluster describe-cluster --cluster-name hello-world
クラスターの作成中に clusterStatus
が「CREATE_IN_PROGRESS
」とレポートします。クラスターの作成に成功すると、clusterStatus
は「CREATE_COMPLETE
」に遷移します。また、出力には、ヘッドノードの publicIpAddress
と privateIpAddress
が表示されます。
ヘッドノードにログインする
OpenSSH pem ファイルを使用してヘッドノードにログインします。
$
pcluster ssh --cluster-name hello-world -i /path/to/keyfile.pem
ログインしたら、sinfo
コマンドを実行して、コンピューティングノードがセットアップおよび設定されていることを確認します。
$
sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST queue1* up infinite 10 idle~ queue1-dy-queue1t2micro-[1-10]
出力には、クラスターに 1 つのキューがあり、最大 10 のノードがあることが示されます。
Slurm を使用して最初のジョブを実行する
次に、しばらくの間スリープしてから、独自のホスト名を出力するジョブを作成します。hellojob.sh
というファイルを次の内容で作成します。
#!/bin/bash
sleep 30
echo "Hello World from $(hostname)"
次に、sbatch
を使用してジョブを送信し、実行されることを確認します。
$
sbatch hellojob.sh
Submitted batch job 2
これで、キューを表示してジョブのステータスを確認できます。新しい Amazon EC2 インスタンスのプロビジョニングがバックグランドで開始されます。クラスターインスタンスのステータスは、sinfo
コマンドでモニタリングできます。
$
squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 2 queue1 hellojob ec2-user CF 3:30 1 queue1-dy-queue1t2micro-1
出力には、ジョブが queue1
に送信されたことが示されます。ジョブが終了するまで 30 秒間待ってから、もう一度 squeue
を実行します。
$
squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
キューにはジョブがないため、現在のディレクトリで出力を確認できます。
$
ls -l
total 8 -rw-rw-r-- 1 ec2-user ec2-user 57 Sep 1 14:25 hellojob.sh -rw-rw-r-- 1 ec2-user ec2-user 43 Sep 1 14:30 slurm-2.out
出力には、「out
」ファイルが示されます。ジョブからの出力を確認できます。
$
cat slurm-2.out
Hello World from queue1-dy-queue1t2micro-1
また、出力には、ジョブがインスタンス queue1-dy-queue1t2micro-1
上で正常に実行されていることも示されています。
作成したばかりのクラスターでは、ホームディレクトリのみがクラスターの全ノード間で共有されます。
クラスターの作成と使用の詳細については、「ベストプラクティス」を参照してください。
アプリケーションで共有ソフトウェア、ライブラリ、またはデータが必要な場合は、以下のオプションを検討してください。
-
「」の説明に従って、ソフトウェアを含む AWS ParallelCluster 有効なカスタム AMI を構築しますカスタム AMI AWS ParallelCluster の構築。
-
AWS ParallelCluster 設定ファイルの StorageSettings オプションを使用して共有ファイルシステムを指定し、インストールしたソフトウェアを指定されたマウント場所に保存します。
-
カスタムブートストラップアクション を使用して、クラスターの各ノードのブートストラップ手順を自動化します。