AWS ParallelCluster ハンズオン

55
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved. AWS ParallelCluster ハンズオン ⼩川 貴⼠ アマゾン ウェブ サービス ジャパン 技術統括本部 ソリューションアーキテクト Twitterハッシュタグ #AWSInnovate

Transcript of AWS ParallelCluster ハンズオン

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

AWS ParallelCluster ハンズオン

⼩川 貴⼠アマゾン ウェブ サービス ジャパン技術統括本部 ソリューションアーキテクト

Twitterハッシュタグ #AWSInnovate

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

アジェンダAWS ParallelClusterについて

ParallelClusterハンズオン

後⽚付け

その他参考情報

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

オープンソースソースのプロジェクトで下記より誰でも⼊⼿可能︓

選択できるジョブスケジューラ︓-SGE-Torque-Slurm-AWS Batch

インテグレート済みのAWS HPC関連サービス︓

-FSx for Lustre-EFA-NICE-DCVetc. AWS ParallelClusterの詳細については下記のAWS BlackBelt資料も参照ください

https://www.slideshare.net/AmazonWebServicesJapan/20200408-aws-black-belt-online-seminar-aws-parallelcluster-hpc

AWS ParallelClusterとはジョブ本数を監視して計算ノードを⾃動でスケールさせるHPCクラスター環境を数ステップで簡単に構築するツール

https://github.com/aws/aws-parallelcluster

4

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Availability Zone

VPC Subnet

AWS Region

Master Server

Amazon EC2

Amazon Elastic Block Store (EBS)

Amazon S3 Bucket

AWS CloudFormationTemplate

AWS Auto Scaling

Compute Nodes

Amazon EC2Instances

NFS Share

Scheduler Queue

Case Data

SSH +User

Client

AWS ParallelCluster アーキテクチャ

5

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Availability Zone

VPC Subnet

AWS Region

Master Server

Amazon EC2

Amazon Elastic Block Store (EBS)

Amazon S3 Bucket

AWS CloudFormationTemplate

AWS Auto Scaling

Compute Nodes

Amazon EC2

NFS Share

Scheduler Queue

Case Data

SSH +User

Client

ParallelCluster 利⽤の流れ(管理者のタスク)1. ParallelCluster管理サーバへpclusterコマンドをインストール。”pcluster create …”コマンドでHPCクラスタを起動

2. CloudFormationによって下記アーキテクチャの

HPCクラスタが起動

6

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Availability Zone

VPC Subnet

AWS Region

Master Server

Amazon EC2

Amazon Elastic Block Store (EBS)

Amazon S3 Bucket

AWS CloudFormationTemplate

AWS Auto Scaling

Compute Nodes

Amazon EC2

NFS Share

Scheduler Queue

Case Data

SSH +User

Client

ParallelCluster 利⽤の流れ(利⽤者のタスク)3.Compute Nodesが起動、

ジョブスケジューラからジョブを受け取り実⾏、ジョブが終了して暫くすると⾃動で消滅する

1.HPCクラスタの利⽤者はsshでマスター

サーバにログイン。計算ジョブを投⼊する(OptionでNICE-DCVを⽤いてGUIのデスクトップ画⾯にログイン

も可能)

2. Queue内の待ちジョブ情報が

CloudWatchにput、ジョブがリクエストしているCPU数に応じてComputing Nodesの

autoscaling発動

7

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Availability Zone

VPC Subnet

AWS Region

Master Server

Amazon EC2

Amazon Elastic Block Store (EBS)

AWS Auto Scaling

Compute Nodes

Amazon EC2

NFS Share

Scheduler Queue

ParallelCluster デフォルトの構成

Master Node• t2.micro• OS︓Amazon Linux• NFS Server• Scheduler(SGE)

Compute Node• t2.micro• OS︓Amazon Linux• NFS Client• Scheduler(SGE)

初期0インスタンス最⼤10インスタンスのAuto Scaling Group

EBS1• SSD(gp2) : 25GB (/)EBS2• SSD(gp2) : 20GB (/shared)

EBS1• SSD(gp2) : 25GB (/)

8

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelCluster デフォルト時のNFS構成(SGEの例)

Master Server

/home/opt/intel/opt/sge

/shared

Compute Nodes

Filesystem Size Used Avail Use% Mounted on/dev/xvda1 25G 9.5G 15G 39% /ip-172-31-xx-yy:/home 25G 9.5G 15G 39% /homeip-172-31-xx-yy:/opt/intel 25G 9.5G 15G 39% /opt/intelip-172-31-xx-yy:/shared 20G 44M 19G 1% /sharedip-172-31-xx-yy:/opt/sge 25G 9.5G 15G 39% /opt/sge

Filesystem Size Used Avail Use% Mounted on/dev/xvda1 25G 9.5G 15G 39% //dev/xvdb 20G 45M 19G 1% /shared

9

NFS 共有

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelCluster Configファイル例[aws]aws_region_name = ${REGION}

[global]cluster_template = defaultupdate_check = falsesanity_check = true

[cluster default]key_name = lab-3-your-keyvpc_settings = publicebs_settings = myebscompute_instance_type = c5.xlargemaster_instance_type = c5.xlargecluster_type = ondemandplacement_group = DYNAMICplacement = computeinitial_queue_size = 0max_queue_size = 8disable_hyperthreading = trues3_read_write_resource = *scheduler = sge

[vpc public]vpc_id = ${VPC_ID}master_subnet_id = ${SUBNET_ID}

[ebs myebs]shared_dir = /sharedvolume_type = gp2volume_size = 20

[aliases]ssh = ssh {CFN_USER}@{MASTER_IP} {ARGS}

※⾚字は環境に合わせて変更必須の箇所※その他 configファイルで指定できる⼀連のパラメータが記載されたサンプルがpython導⼊ディレクトリ(例“/site-packages/pcluster/examples/config”)に配置されています。パラメータの詳細は下記ドキュメントを参照ください

https://docs.aws.amazon.com/ja_jp/parallelcluster/latest/ug/configuration.html10

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelCluster起動前準備1Amazon EC2 キーペアの作成

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

<参考>Key Pairとは︖• Key Pairを作成すると、1組の公開鍵・秘密鍵が作成される• 公開鍵はAWS側で保管。 Amazon EC2起動時にインスタンスにコピー• 秘密鍵はローカル側で保管。ログイン時に必要• リージョンごとに独⽴

キーペアの作成

公開鍵は、AWSによってEC2起動時に埋め込まれる

秘密鍵は、デスクトップにダウンロードされる

EC2インスタンスは2つの鍵を⽤いる

13

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

マネジメントコンソールへログインブラウザで下記URLへアクセスして、AWSのマネジメントコンソールへログイン

• https://console.aws.amazon.com/

⼿順

14

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

リージョンの選択マネジメントコンソールの画⾯右上のリージョン選択タブからリージョンを選択

※画⾯では例として「東京」リージョンを選択しています

⼿順

15

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

EC2サービスを選択続いてマネジメントコンソールの初期画⾯から”EC2”のサービスを選択

“EC2”は「コンピューティング」のカテゴリにあります

⼿順

16

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

KeyPairを作成し、秘密鍵を取得するEC2画⾯の左側メニューから「キーペア」を選択し→画⾯上の「キーペア作成」をクリックキーペア名は任意の英数⽂字列 (ここでは例として”guest01-key”の名前を付けています)キーペアを作成すると秘密鍵がダウンロードされますので、PCに保存します。

ファイルは開かずSaveで保管してください。(エディタで開いて保存するとファイルが壊

れることがあります。)

⼿順

17

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelCluster起動前準備2AWS CLI環境(Cloud9環境)の作成

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

参考︓AWS Cloud9とはブラウザだけでコードを記述、実⾏及びデバッグできるクラウドベースの統合開発環境(IDE)

JavaScript、Python、PHPなどのよく使⽤されるプログラム⾔語の主要ツールを同梱

オフィス、⾃宅、その他どこでもインターネットに接続されたマシンを使⽤してプロジェクトで作業可能

サーバーレスアプリケーション開発⽤のシームレスなエクスペリアンスを提供

開発環境をチームで共有しペアプログラミングが可能

AWS CodeStarから環境構築可能

Cloud9の詳細については、下記AWS Blackbeltの資料を参照くださいhttps://www.slideshare.net/AmazonWebServicesJapan/20180613-aws-black-belt-online-seminar-aws-cloud9

19

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Cloud9サービスを選択マネジメントコンソールの初期画⾯から”Cloud9”のサービスを選択

“Cloud9”は「開発者⽤ツール」のカテゴリにあります

⼿順

20

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Cloud9環境作成Cloud9の画⾯から「Create environment」を選択します。

Create environmentをクリック

Your environmentsをクリック

もしくは

Cloud9初期画⾯からCreate environment

をクリック

⼿順

21

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Cloud9環境作成Name項⽬に任意の名前を⼊⼒します。(画⾯では例として”cloud9-env01”と⼊⼒しています)⼊⼒したら画⾯下の「Next step」ボタンをクリックします。

⼿順

22

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Cloud9環境作成Configure settingsの画⾯はデフォルトのまま「Next step」ボタンで次に進みます

⼿順

23

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Cloud9環境作成Review画⾯が表⽰されますので、確認後 画⾯下の「Create environment」ボタンをクリックします。

※ここでCloud9インスタンスの作成が開始され、作成処理に数分を要します

⼿順

24

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Cloud9環境作成Cloud9環境の作成が完了すると、開発環境にアクセスされます。ここで画⾯下のターミナルからコマンドの⼊⼒が⾏えます。

Linuxのターミナル画⾯

⼿順

25

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

秘密鍵のアップロード前準備1でダウンロードしたキーペアの秘密鍵ファイルをCloud9環境にアップロードします。画⾯左側ペインのフォルダにファイルをドラッグアンドドロップすることでファイルのアップロードが⾏えます。

ブラウザ画⾯上のここの部分へファイル

をドロップ

⼿順

26

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelClusterのセットアップ

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelClusterのインストール• AWS CLIの実⾏できる環境(前準備2で作成したCloud9のターミナル画⾯)から

下記のコマンドを実⾏してインストールします(⾚⽂字がキー⼊⼒する部分です)

ParallelClusterセットアップ

28

⼿順

$ sudo pip install aws-parallelcluster

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelClusterセットアップ$ pcluster configureINFO: Configuration file /home/ec2-user/.parallelcluster/config will be written.Press CTRL-C to interrupt the procedure.

Allowed values for AWS Region ID:1. ap-northeast-12. ap-northeast-23. ap-south-14. ap-southeast-15. ap-southeast-26. ca-central-17. eu-central-18. eu-north-19. eu-west-110. eu-west-211. eu-west-312. sa-east-113. us-east-114. us-east-215. us-west-116. us-west-2AWS Region ID [us-east-1]: ap-northeast-1

ParallelClusterの初期設定

← リージョンを指定(ここでは例として東京リージョンを指定)

29

⼿順

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelClusterセットアップ〜前のページから続き〜Allowed values for EC2 Key Pair Name:1. guest01-keyEC2 Key Pair Name [guest01-key]: guest01-keyAllowed values for Scheduler:1. sge2. torque3. slurm4. awsbatchScheduler [sge]: Allowed values for Operating System:1. alinux2. alinux23. centos64. centos75. ubuntu16046. ubuntu1804Operating System [alinux]: Minimum cluster size (instances) [0]: Maximum cluster size (instances) [10]: Master instance type [t2.micro]: Compute instance type [t2.micro]:

ParallelClusterの初期設定(続き)

← 使⽤するキーペア名を指定(前準備1で作成したキー名を指定)

← ジョブスケジューラを指定 (デフォルトの”sge”でよければそのままEnterキー⼊⼒)

30

⼿順

← OSを指定 (デフォルトの”Amazon Linux”でよければそのままEnterキー⼊⼒)← Compute Nodesの最⼩台数を指定 (デフォルトの”0”でよければそのままEnterキー⼊⼒)← Compute Nodesの最⼤台数を指定 (デフォルトの”10”でよければそのままEnterキー⼊⼒)← Master Serverのインスタンスタイプを指定 (デフォルトは”t2.micro”)← Compute Nodesのインスタンスタイプを指定 (デフォルトは”t2.micro”)

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelClusterセットアップ〜前のページから続き〜Automate VPC creation? (y/n) [n]: nAllowed values for VPC ID:1. vpc-aa11bb22 | default-VPC | 2 subnets insideVPC ID [vpc-aa11bb22]: vpc-aa11bb22Automate Subnet creation? (y/n) [y]: nAllowed values for Master Subnet ID:1. subnet-aa11bb22 | Subnet size: 40962. subnet-11bb22cc | Subnet size: 4096Master Subnet ID [subnet-aa11bb22]: subnet-aa11bb22Allowed values for Compute Subnet ID:1. subnet-aa11bb22 | Subnet size: 40962. subnet-11bb22cc | Subnet size: 4096Master Subnet ID [subnet-aa11bb22]: subnet-aa11bb22 Configuration file written to /home/ec2-user/.parallelcluster/configYou can edit your configuration file or simply run 'pcluster create -c /home/ec2-user/.parallelcluster/config cluster-name' to create your cluster

ParallelClusterの初期設定(続き)

← クラスタを起動するVPC IDを指定

ここまで初期設定が完了すると、ParallelClusterの設定ファイル~/.parallelcluster/conf ファイルが作成されます。設定を追加ならびに変更したい場合はこのファイルを直接編集します。configファイルで指定できる⼀連のパラメータが記載されたサンプルが下記に配置されていますので必要に応じて参考にして下さい。

/usr/local/lib/python3.6/site-packages/pcluster/examples/config

各パラメータの詳細については下記ドキュメントを参照くださいhttps://aws-parallelcluster.readthedocs.io/en/latest/configuration.html31

⼿順

← 既存のVPCを利⽤する場合は”n”を指定

← 既存のsubnetを利⽤する場合は”n”を指定

← Master serverを起動するsubnet IDを指定

← Compute nodesを起動するsubnet IDを指定

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelClusterの起動と確認

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelClusterの起動

$ pcluster create pcluster01Beginning cluster creation for cluster: pcluster01Creating stack named: parallelcluster-pcluster01Status: parallelcluster-plusterXX - CREATE_COMPLETE MasterPublicIP: 54.68.XXX.XXXClusterUser: ec2-userMasterPrivateIP: 10.0.XXX.XXX

ParallelClusterの起動 (ここでは例としてpcluster01の名前でクラスタを構成しています)

正常にParallelClusterの構成が完了すると、上記のような”CREATE_COMPLETE”のメッセージとマスターノードのアドレス情報などが出⼒されます。※完了まで約10分程度かかります。

33

⼿順

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelClusterの確認

## クラスタ⼀覧確認$ pcluster listpcluster01 CREATE_COMPLETE 2.6.1

##クラスタ情報確認$ pcluster status pcluster01Status: CREATE_COMPLETEMasterServer: RUNNINGMasterPublicIP: 52.68.XX.XXClusterUser: ec2-userMasterPrivateIP: 10.0.XXX.XXX

## クラスタノード確認$ pcluster instances pcluster01MasterServer i-017299dfe9bf12385ComputeFleet i-07061ad59875d1470ComputeFleet i-0a903bf2826959d64

ParallelClusterの状態確認

クラスタノード確認の時点でComputeノードが無い場合は、ComputeFleetは表⽰されません

34

⼿順

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelClusterへのログイン

35

⼿順

次のコマンドでParallelClusterのMaster serverにログインします。

$ chmod 600 ~/environment/guest01-key.pem $ pcluster ssh pcluster01 -i ~/environment/guest01-key.pem

ログインするクラスタ名を指定 -i オプションでキーファイルを指定

前準備1で作成したキーペア前準備1で作成したキーペア

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelCluster動作確認## スケジューラ(SGE)の確認$ qhostHOSTNAME ARCH NCPU NSOC NCOR NTHR LOAD MEMTOT MEMUSE SWAPTO SWAPUS----------------------------------------------------------------------------------------------global - - - - - - - - - -

##テスト⽤ジョブスクリプト作成$ echo "sleep 60 ; hostname ; date" > job1.sh$ chmod 755 job1.sh

##ジョブ投⼊$ qsub job1.sh Unable to run job: warning: centos's job is not allowed to run in any queueYour job 1 ("job1.sh") has been submittedExiting.

##ジョブ確認$ qstatjob-ID prior name user state submit/start at queue slots ja-task-ID-----------------------------------------------------------------------------------------------------------------

1 0.55500 job1.sh centos r 04/13/2016 02:21:20 all.q@ip-172-31-38-95. 1

Master serverにログインしたら、動作確認を⾏います。

ジョブ実⾏が完了すると、qstatコマンドの出⼒からジョブの表⽰が無くなります。Computeノードが無い状態ではジョブ投⼊後、ComputeFleetの起動に時間を要する為、ジョブが完了するまでに5-10分程度の時間を要します (時折りqstatやqhostコマンドを実⾏して状態の変化を確認してみましょう)

Computeノードが無い時は、warningが出⼒されますが問題ありません (このジョブ投⼊をトリガーにComputeノードが構成されます)

36

⼿順

60秒間sleepしてホスト名、時間を出⼒する簡単なジョブスクリプトを作成

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

アプリケーション導⼊と実⾏

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

アプリケーションの導⼊・動作確認

$ cd /shared$ wget http://mvapich.cse.ohio-state.edu/download/mvapich/osu-micro-benchmarks-5.6.2.tar.gz$ tar -xvf osu-micro-benchmarks-5.6.2.tar.gz $ cd ./osu-micro-benchmarks-5.6.2/$ module load openmpi$ ./configure --prefix=$PWD/install CC=mpicc CXX=mpicxx$ make$ make install

アプリケーションはMaster Server上からNFS共有領域である/sharedディレクトリ下にインストールすることで、計算ノードにもアプリケーションが共有されます• ここではサンプルアプリケーションとして OSU BenchmarksというMPI通信速

度を計測する並列プログラムをコンパイル・インストールして動作確認を⾏います

38

⼿順

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

アプリケーションジョブの実⾏準備

$ cd ~$ cat > osu-latency.sh << EOF#!/bin/bash -x

#$ -V#$ -cwd#$ -N osu-latency-job#$ -pe mpi 2#$ -j y

module load openmpi

mpirun -np 2 /shared/osu-micro-benchmarks-5.6.2/install/libexec/osu-micro-benchmarks/mpi/pt2pt/osu_latency

EOF

スケジューラに投⼊する為のスクリプト(osu-latency.sh)を作成します

39

⼿順

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

アプリケーションジョブの実⾏

##ジョブ投⼊$ qsub osu-latency.sh

##ジョブ確認$ qstatjob-ID prior name user state submit/start at queue slots ja-task-ID-----------------------------------------------------------------------------------------------------------------

2 0.55500 osu-latenc ec2-user r 04/16/2020 14:29:26 [email protected] 2

先ほど作成したスクリプトをqsubコマンドでスケジューラへ投⼊。計算ノード上で実⾏します

• 2CPU(=t2.micro x 2インスタンス)を必要とするジョブの為、ジョブの実⾏開始(=インスタンスが⽤意できる)まで数分時間が掛かります

• ジョブ実⾏が完了すると、qstatコマンドの出⼒からジョブの表⽰が無くなります。• アウトプットは”osu-latency-job.o〜”のファイルに出⼒されます。• 時間に余裕のある⽅は、qsubコマンドで同時に複数のジョブを投⼊するなどして、ジョブが実⾏

されていく様⼦を確認してみましょう。

40

⼿順

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ParallelClusterの削除

$ pcluster delete pcluster01

ParallelClusterを削除する場合は下記のコマンドを実⾏します

※Cloud9のターミナルからコマンドを⼊⼒します。※ParallelClusterのマスターサーバにログインしている場合はログアウトしてからコマンドを実⾏してください。※Clusterを削除すると、EBSボリュームも削除されますのでご注意ください。

42

⼿順

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

キーペアの削除• AWSマネジメントコンソールのEC2の画⾯からキーペアのメニューを表⽰して⾃分の

作成したキーペアを選択• アクション → 削除 を選択してキーペアを削除• ⾃分のPC上でキーペア作成時にダウンロードした秘密鍵も削除

⼿順

43

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Cloud9環境の削除• AWSマネジメントコンソールのCloud9画⾯から「Your environments」のメニューを開く• 削除する環境を選択して「Delete」ボタンをクリック• 確認画⾯でDeleteをキー⼊⼒して削除実⾏

⼿順

44

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

EC2の課⾦の内訳インターネット

EC2

EBS

S3

データ転送量(out)

インスタンスタイプ別利⽤料

EBSの利⽤料

AMI/スナップショットの保管料

EC2の費⽤が⼤半を占める︕使わない時はこまめに停⽌することで節約できる︕

例) 汎⽤SSD使⽤料: $0.12/GB/⽉

例) S3に対するsnapshot: $0.05/GB/⽉

例) EC2からインターネットへの通信料: $0.114/GB

例) m5.large(Linux)使⽤料: $0.124/時間

※上記はいづれも東京リージョンでの価格例です46

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

スポットインスタンス

オンデマンド• スタンダードな時間課⾦型インスタンス

リザーブドインスタンス• 1年間または3年間の利⽤予約をすることで25〜70%前後の割引

スポットインスタンス• 使われていないEC2インスタンスに⼊札して格安利⽤• 最⼤90%程度の⼤幅コストカットが可能︕

Amazon EC2の購⼊オプション⼀覧

※スポットインスタンスは⼊札価格を時価が上回ると、強制的にシステムがTerminateされる為、注意が必要。途中停⽌に対応できない場合はオンデマンドでご利⽤ください。

47

ParallelClusterにおいてはconfigファイルの”cluster_type = spot” の指定でスポットインスタンスが利⽤可能ですhttps://docs.aws.amazon.com/ja_jp/parallelcluster/latest/ug/cluster-definition.html#cluster-type

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

スポットインスタンスについて(つづき)スポット価格はEC2メニューのスポットリクエストの画⾯から確認できます

48

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

タイプ vCPU メモリ EBS帯域幅 NW帯域幅c5.large 2 4GiB 最⼤2.25Gbps 最⼤10Gbpsc5.xlarge 4 8GiB 最⼤2.25Gbps 最⼤10Gbpsc5.2xlarge 8 16GiB 最⼤2.25Gbps 最⼤10Gbpsc5.4xlarge 16 32GiB 2.25Gbps 最⼤10Gbpsc5.9xlarge 36 72GiB 4.5Gbps 10Gbpsc5.18xlarge 72 144GiB 9Gbps 25Gbps

インスタンスのネットワーク性能は、例えば同じC5インスタンスでも、インスタンスのサイズによって性能は異なります。基本的にインスタンスのサイズに⽐例して、インスタンスあたりのネットワーク性能も向上する為、並列処理などインスタンス間の通信性能が影響する場合、CPU/メモリ量に関わらずインスタンスサイズの考慮が必要。例)C5インスタンスでのネットワークパフォーマンスの違い

各インスタンスのネットワーク性能については下記の中のインスタンスタイプマトリックスを参照https://aws.amazon.com/jp/ec2/instance-types/

インスタンスによるネットワーク性能の違い

49

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

• 拡張ネットワーキング• SR-IOVに対応し、仮想化オーバーヘッドを低減することで低レイテンシでの通信が可能

• Cluster Placement Group• インスタンスの配置を最適化することで広帯域/低レイテンシ/フルバイセクション通信を実現

• Elastic Fabric Adapter• HPC向けに、MPI (Message Passing Interface) やNCCL (NVIDIA Collective

Communications Library) などの libfabric 対応のアプリケーションでの通信をより低レイテンシ化

https://docs.aws.amazon.com/ja_jp/parallelcluster/latest/ug/cluster-definition.html

EC2の⾼性能ネットワーク技術

“placement_group = DYNAMIC”

“placement = compute”

“enable_efa = compute”

50

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Solid State Drive (SSD) Hard Disk Drive (HDD)

ボリュームタイプ プロビジョンドIOPS SSD (io1)

汎⽤SSD(gp2)

スループット最適化HDD (st1)

コールドHDD (sc1)

ユースケース I/O性能に依存するNoSQLデータベースやリRDB

起動ボリューム、低レイテンシを要求するアプリ、

開発・テスト環境

ビッグデータ、DWH、ログデータ処

アクセスする頻度が低いデータ

ボリュームサイズ 4 GB – 16 TB 1 GB – 16 TB 500 GB – 16 TB 500 GB – 16 TBボリューム毎の最⼤IOPS 20,000

(16 KB I/O size)10,000

(16 KB I/O size)500

(1 MB I/O size)250

(1 MB I/O size)インスタンス毎の最⼤IOPS(複数ボリューム)

48,000 48,000 48,000 48,000

ボリューム毎の最⼤スループット

320 MB/s 160 MB/s 500 MB/s 250 MB/s

⽉額料⾦(バージニアリージョン)

$0.125/GB+

$0.065/設定IOPS値

$0.10/GB $0.045/GB $0.025/GB

性能指標 IOPS IOPS MB/s MB/s

EBSボリュームは性能やコストが異なる4つの種類が⽤意されています。後からボリュームタイプやサイズの変更を⾏うことも可能です。(ただし制約あり)

ParallelClusterにおいてはconfigファイルの[ebs]セクションにて調整が可能ですhttps://docs.aws.amazon.com/ja_jp/parallelcluster/latest/ug/ebs-section.html

EBSボリュームの種類について

51

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

ハイパースレッドの無効化CPUのキャッシュを占有するようなプログラムで有効lscpuコマンドを使⽤して、CPUレイアウトを確認chcpuコマンドを使⽤して、プロセッサ番号後半の論理CPUをOFFにするコマンド例)プロセッサ番号64-127をOFFにする場合$ sudo chcpu -d 64-127

[ec2-user@ip-172-31-7-218 ~]$ lscpuCPU(s): 128On-line CPU(s) list: 0-127Thread(s) per core: 2Core(s) per socket: 16Socket(s): 4NUMA node(s): 4Model name: Intel(R) Xeon(R) CPU E7-8880 v3 Hypervisor vendor: XenVirtualization type: fullNUMA node0 CPU(s): 0-15,64-79NUMA node1 CPU(s): 16-31,80-95NUMA node2 CPU(s): 32-47,96-111NUMA node3 CPU(s): 48-63,112-127

[ec2-user@ip-172-31-7-218 ~]$ lscpuCPU(s): 128On-line CPU(s) list: 0-127Thread(s) per core: 2Core(s) per socket: 16Socket(s): 4NUMA node(s): 4Model name: Intel(R) Xeon(R) CPU E7-8880 v3 Hypervisor vendor: XenVirtualization type: fullNUMA node0 CPU(s): 0-15NUMA node1 CPU(s): 16-31NUMA node2 CPU(s): 32-47NUMA node3 CPU(s): 48-63

<論理プロセッサOFF前>

<論理プロセッサOFF後>

52

https://docs.aws.amazon.com/ja_jp/parallelcluster/latest/ug/cluster-definition.html

“disable_hyperthreading = true”

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

• NICE-DCVとはー⾼性能なNICE-DCVプロトコルにより、クラウド上のデスクトップ画⾯を⾼速にストリーミ

ング、スムーズな画⾯描画による快適なVDI環境を実現するソフトウェアーWindows、Linuxの両⽅に対応ーG2,G3インスタンスと組合せて使⽤することで、GPUによる⾼度な3Dグラフィックス描画

の他、H.264ハードウェアエンコードによりCPU負荷無く画⾯のストリーミングを実現ーNativeクライアントのほか、HTML5クライアントサポートによりブラウザでのリモートア

クセスに対応ーEC2上での利⽤は追加のライセンスコスト無しで利⽤可能

NICE-DCVによるデスクトップ(GUI)ログイン

5353

https://docs.aws.amazon.com/ja_jp/parallelcluster/latest/ug/dcv.html

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

参考資料Amazon EC2

• http://aws.amazon.com/jp/ec2/Amazon Elastic Compute Cloud ドキュメント

• http://aws.amazon.com/jp/documentation/ec2/AWS HPC

• https://aws.amazon.com/jp/hpc/ParallelCluster

• https://github.com/aws/aws-parallelclusterParallelCluster ドキュメント

• https://docs.aws.amazon.com/parallelcluster/ParallelCluster 紹介ブログ

• https://aws.amazon.com/jp/blogs/opensource/aws-parallelcluster/ParallelCluster BlackBeltオンラインセミナー資料

• https://www.slideshare.net/AmazonWebServicesJapan/20200408-aws-black-belt-online-seminar-aws-parallelcluster-hpc

54

Thank you!

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.