で最初のジョブを実行する AWS ParallelCluster - AWS ParallelCluster

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

で最初のジョブを実行する AWS ParallelCluster

このチュートリアルでは、 で最初の Hello World ジョブを実行する手順を説明します。 AWS ParallelCluster

AWS ParallelCluster コマンドラインインターフェイス (CLI) または API を使用する場合、 AWS ParallelCluster イメージとクラスターを作成または更新したときに作成された AWS リソースに対してのみ料金が発生します。詳細については、「AWS が使用する のサービス AWS ParallelCluster」を参照してください。

AWS ParallelCluster UI はサーバーレスアーキテクチャ上に構築されており、ほとんどの場合、 AWS 無料利用枠カテゴリ内で使用できます。詳細については、「AWS ParallelCluster UI コスト」を参照してください。

前提条件

インストールを確認する

まず、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」に遷移します。また、出力には、ヘッドノードの publicIpAddressprivateIpAddress が表示されます。

ヘッドノードにログインする

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 を構築しますカスタム AWS ParallelCluster AMI の構築

  • AWS ParallelCluster 設定ファイルの StorageSettingsオプションを使用して共有ファイルシステムを指定し、インストールしたソフトウェアを指定されたマウント場所に保存します。

  • カスタムブートストラップアクション を使用して、クラスターの各ノードのブートストラップ手順を自動化します。