AWS ParallelCluster v2.11.2 がリリースされたのでHPCクラスター環境構築して動作確認してみた
AWS ParallelCluster v2.11.2がリリースされました。v2.11.1からのマイクロアップデートです。目立った機能追加はありませんでした。
Release AWS ParallelCluster v2.11.2 · aws/aws-parallelcluster
以下、DeepL翻訳による変更点の情報です。
CHANGES
- EFAパッケージがプリインストールされたカスタムAMIを使用する場合、GPUDirect RDMAが有効な場合は、ノードのブートストラップ時にアクションが行われません。元のEFAパッケージの配置は、createamiプロセス中のように保存されます。
- EFAインストーラをバージョン1.13.0にアップグレードします。
- rdma-coreをv35.0にアップデートします。
- libfabricをv1.13.0amzn1.0に更新しました。
BUG FIXES
- nvidia-fabricmanagerパッケージのバージョンを、インストールされているNVIDIAドライバにロックして、アップデートやミスマッチを防ぎます。
- Slurm: パワーアップしたノードが、クラスタの停止・起動後に正しくリセットされない問題を修正しました。
新バージョンのHPCクラスター構築
v2.11.2のHPCクラスターを作成し、同v2.11.代のコンフィグや、IAMロールと互換性があるか動作確認します。
管理コマンドのアップデート
以下のリンクを参考にpcluster
コマンドのバージョンを最新化します。
$ pcluster version 2.11.2
IAMロール更新確認
ParallelClusterUserPolicy using Slurmで紹介されているIAMポリシーがpcluster
コマンドをインストールしたEC2インスタンスに必要です。
ドキュメントの履歴を確認すると今回のマイクロリリースに伴った更新はありませんでした。
従ってAWS ParallelCluster 2.11.0用に作成したIAMポリシーのままで問題ありません。以下のリンクで2.11.0対応のIAMロール・IAMポリシーを作成方法を紹介しています。
コンフィグ作成
以下のコンフィグを作成しました。
ユーザ固有の設定値の箇所をハイライトしてあります。参考にされるときはご自身の環境の値に変更してお使いください。
# v2.11.2 [aws] aws_region_name = us-east-1 [aliases] ssh = ssh {CFN_USER}@{MASTER_IP} {ARGS} [global] cluster_template = default update_check = true sanity_check = true [cluster default] key_name = sandbox-key-useast1 scheduler = slurm # --- HeadNode Setting --- base_os = ubuntu2004 master_instance_type = t3a.micro master_root_volume_size = 35 # --- Netowrk Setting --- vpc_settings = default # --- Compute Setting --- queue_settings = spot1 # --- PostInstall Setting --- s3_read_resource = arn:aws:s3:::blog-parallelcluster-postinstall* post_install = s3://blog-parallelcluster-postinstall/postinstall.sh # --- IAM Policy--- additional_iam_policies = arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore # --- Tag --- tags = { "Name" : "Blog-Sample-Cluster-v2112" } [vpc default] vpc_id = vpc-07edfc27679c9ca80 master_subnet_id = subnet-0ab2754446b2f87a4 compute_subnet_id = subnet-0ab2754446b2f87a4 use_public_ips = true [queue spot1] compute_resource_settings = spot1_resource placement_group = DYNAMIC compute_type = spot [compute_resource spot1_resource] instance_type = c5a.large max_count = 16
カスタムブートストラップ設定
ヘッドノード、コンピュートノードの初期設定スクリプトを作成します。
Postinstallの動作確認用にPython3.8
をインストールするスクリプトを作成します。
#!/usr/bin/env bash apt-get update -y apt-get install python3.8 -y
コンフィグで指定した所定のS3バケットにスクリプトをアップロードします。
$ aws s3 cp ./postinstall.sh s3://blog-parallelcluster-postinstall upload: ./postinstall.sh to s3://blog-parallelcluster-postinstall/postinstall.sh
HPCクラスター作成
pcluster create
コマンドで先ほどのコンフィグからHPCクラスターを作成しました。
$ pcluster create -c blogSampleCluster2112 blogSampleCluster2112 Beginning cluster creation for cluster: blogSampleCluster2112 Creating stack named: parallelcluster-blogSampleCluster2112 Status: parallelcluster-blogSampleCluster2112 - CREATE_COMPLETE MasterPublicIP: 54.87.107.193 ClusterUser: ubuntu MasterPrivateIP: 10.1.11.60
ヘッドノードのEC2インスタンスが起動しています。
HPCクラスター環境
ヘッドノードにログインしました。Python3.8
がインストールされていることが確認できました。Postinstallの実行は正常に動作しています。
ubuntu@ip-10-1-11-60:~$ python3 -V Python 3.8.10
Postinstall実行時のログを確認すると最初からPython3.8.10
がインストールされていました。Postinstallが動作していることは確認できたのでヨシとします。
2021-08-27 01:15:46,635 [DEBUG] Running command runpostinstall 2021-08-27 01:15:46,635 [DEBUG] No test for command runpostinstall 2021-08-27 01:16:07,428 [INFO] Command runpostinstall succeeded ...snip... python3.8 is already the newest version (3.8.10-0ubuntu1~20.04). python3.8 set to manually installed.
コンピュートノード
コンピュートノードを起動させるためにテストジョブを作成します。
#! /bin/bash hostname python3 -V
テストジョブを投げました。
$ sbatcn -n1 test.sh
コンピュートノード起動中です。完全に起動しジョブを処理してくれるまで少し待ちます。
ジョブの実行結果を確認します。実行結果はデフォルトだとヘッドノードのホームディレクトリにファイルが保存されます。
$ ls -l total 8 -rw-rw-r-- 1 ubuntu ubuntu 34 Aug 27 01:30 slurm-2.out -rw-rw-r-- 1 ubuntu ubuntu 33 Aug 27 01:27 test.sh
実行結果です。コンピュートノードのホストネームと、Python3のバージョンを返しています。
spot1-dy-c5alarge-1 Python 3.8.10
コンピュートノードはジョブを処理した後、しばらくすると停止(削除)されていきます。
コンピュートノードの動作も問題ありませんでした。
動作確認結果
AWS ParallelCluster v2.11.2のHPCクラスター環境でコンピュートノードの起動、Postainstall.shの実行は従来通りのまま問題ありませんでした。
v2.11.0で作成したIAMロールから変更はなく、pcluster
コマンドのバージョンアップで新バージョンのHPCクラスターを作成可能でした。
おわりに
マイクロリリースなので機能追加はありませんでしたが、新規にHPCクラスターを作成する場合は積極的に新しいバージョンでお試し頂ければと思います。ちなみにv2.11.0のマイナーリリースでUbuntu20.04が使えるようになったり、個人的には嬉しい機能追加がありました。そのあたりをまとめたブログがないのでv2.12がリリースされる前にまとめたいと思っています。