この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
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ポリシーを作成方法を紹介しています。
コンフィグ作成
以下のコンフィグを作成しました。
ユーザ固有の設定値の箇所をハイライトしてあります。参考にされるときはご自身の環境の値に変更してお使いください。
blogSampleCluster2112
# 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
をインストールするスクリプトを作成します。
postinstall.sh
#!/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が動作していることは確認できたのでヨシとします。
/var/log/cfn-init.log
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.
コンピュートノード
コンピュートノードを起動させるためにテストジョブを作成します。
test.sh
#! /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のバージョンを返しています。
slurm-2.out
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がリリースされる前にまとめたいと思っています。