AWS ParallelClusterが「m6i」インスタンスタイプをサポートしていました

AWS ParallelClusterが「m6i」インスタンスタイプをサポートしていました

m6iでクラスター作成してみたら動きました。
Clock Icon2021.10.02 13:32

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS ParallelCluster v3が2021年9月にリリースされました。m6iインスタンスタイプを利用できるのか検証する機会がありましたので紹介します。

2021年8月にm6iインスタンスタイプがリリースされました。AWS ParallelCluster v3リリース時のアップデート情報でm6iインスタンスタイプに対応とは載っていませんでした。ParallelClusterのドキュメントも確認してみましたが何のインスタンスタイプをサポートしているのかわかりませんでした。

m6iインスタンスタイプのクラスター作成できるのか実際に試して確認してみます。

まとめ

  • AWS ParallelClusterはM6iインスタンスタイプの起動をサポートしていた
    • 以下のバージョンで確認
      • AWS ParallelCluster 3.0.0
      • AWS ParallelCluster 2.11.2

やってみた

AWS ParallelCluster v2系、v3系ともに現時点の最新バージョンで確認します。

v3系

項目
ParallelCluster 3.0.0
OS Ubuntu 20.04 LTS
CPU Intel
HeadNode m6i.large
ComputeNode m6i.2xlarge

以下のコンフィグからクラスターを作成しました。

Region: ap-northeast-1
Image:
  Os: ubuntu2004
HeadNode:
  InstanceType: m6i.large
  Networking:
    ElasticIp: true
    SubnetId: subnet-035be95eeaa091603
  Ssh:
    KeyName: sandbox-key
  LocalStorage:
    RootVolume:
      Size: 50
      Encrypted: false
      VolumeType: gp3
      Iops: 3000
      Throughput: 125
  CustomActions:
    OnNodeConfigured:
      Script: s3://blog-parallelcluster-postinstall/postinstall.sh
  Iam:
    S3Access:
      - BucketName: blog-parallelcluster-postinstall
        EnableWriteAccess: False
    AdditionalIamPolicies:
      - Policy: arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
Scheduling:
  Scheduler: slurm
  SlurmQueues:
    - Name: m6i-spot
      ComputeResources:
        - Name: m6i-spot
          InstanceType: m6i.2xlarge
          MinCount: 0
          MaxCount: 20
      ComputeSettings:
        LocalStorage:
          RootVolume:
            Size: 35
            Encrypted: false
            VolumeType: gp3
            Iops: 3000
            Throughput: 125
      CapacityType: SPOT
      Networking:
         SubnetIds:
           - subnet-035be95eeaa091603
         PlacementGroup:
           Enabled: true
      Iam:
        S3Access:
          - BucketName: blog-parallelcluster-postinstall
            KeyName: read_only/
            EnableWriteAccess: False
        AdditionalIamPolicies:
          - Policy: arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
    - Name: m6i-ondemand
      ComputeResources:
        - Name: m6i-ondemand
          InstanceType: m6i.2xlarge
          MinCount: 0
          MaxCount: 5
      Networking:
        SubnetIds:
          - subnet-035be95eeaa091603
        PlacementGroup:
           Enabled: true
      Iam:
        AdditionalIamPolicies:
          - Policy: arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

ヘッドノードは問題なく起動できたため、テストジョブを投げてコンピュートノードを起動させました。どちらも問題なく起動しました。

存在しないインスタンスタイプを指定した場合は?

現時点では存在しないc6iを指定してみました。コンピュートノードをc6i.2xlarge指定でクラスターを作成します。

以下のエラーによりクラスター作成が失敗しました。バリデーションの機能は働いていることがわかります。

{
  "message": "Invalid cluster configuration: The following supplied instance types do not exist: [c6i.2xlarge]"
}

v2系

項目
ParallelCluster 2.11.2
OS Ubuntu 20.04 LTS
CPU Intel
HeadNode m6i.large
ComputeNode m6i.large

以下のコンフィグからクラスターを作成しました。

# 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 = m6i.large
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 = m6i.large
max_count = 16

ヘッドノードは問題なく起動できたため、テストジョブを投げてコンピュートノードを起動させました。どちらも問題なく起動しました。

よくある質問

一度も質問は受けたことないのですが個人的に気になることを書いておきます。

スポットインスタンスの料金は?

クラウドHPCの恩恵を受けるにはスポットインスタンスを活用したいところです。

m5m6iの同モデルではスポットインスタンスの価格差はほぼありませんでした。(現時点)

m5.24xlarge

m6i.24xlarge

m6iから1ノードで126vCPUのサイズが追加されました。ピンポイントで活躍できる場面がありそうです。

m6i.36xlarge

スポットインスタンスの中断率は?

残念ながら現時点ではm6iの情報は載っていませんでした。

Spot Instance Advisor

おわりに

クラウドHPCで利用するならコンピューティング最適化のCファミリーや、インスタンスストア付きのdネットワーク強化型のnオプション付きのインタンスタイプが追加されると嬉しいですね。

参考

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.