OCI HPC Cluster: 構築 - v2.10.3

:::note info
本ページは [OCI: HPC Cluster](https://qiita.com/itokazu/items/63d2e3cebdcdda5afce0) のサブページになります。
:::

# HPC Cluster v2.10.3 構築
本手順は [OCI: HPC Cluster](https://qiita.com/itokazu/items/63d2e3cebdcdda5afce0)に記載されている一般的な構成をする手順となります。
構成の中でチェックや入力項目などはスクリーンショットのまま選択をすることを推奨いたします。

##  Marketplace にアクセスする
メニュー → Marketplace → All Applications を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/411e38da-2c88-f680-7fbf-aff2a724983c.png)

## HPC Cluster を検索し、選択する
hpc と検索し、HPC Cluster を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/9a3068a8-1a57-c633-f530-a55acaab9a54.png)


## HPC Cluster の選択と構成
v2.10.3 を選択し、対象のデプロイするコンパートメントを選択し、Launch Stack をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/0d404d50-3148-72f6-289b-5137f7f72236.png)

以下の Create Stack 画面になるので、何も変更せず、Next をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/5ae40085-f96c-a215-8e83-a482a26324eb.png)

次が HPC Cluster のデプロイに関する様々な設定を指定する画面になります。

## hogehoge
一般的な構成をする上での変更点を重点的に説明いたします。

### Cluster configuration
- <font color="blue">Public SSH Key</font>: デフォルトユーザーであるopcユーザーに割り当てるPublic SSH Keyを入力します。ヘッドノードへのログインに利用される。
- <font color="blue">use custom cluster name</font>: ヘッドノードのインスタンス名(≒ホスト名)の接頭辞として設定される。チェックを外すとランダムな文字列で生成される。
- <font color="blue">Configure LDAP authentication from bastion</font>: ヘッドノードにLDAPサーバを構築する。追加ユーザーのヘッドノードログイン、マルチノードでの計算に利用される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/06998b18-d8ad-7d59-c247-b31c0791efad.png)


### Headnode options
ヘッドノードに関する設定
- <font color="blue">Availability Domain</font>: デプロイ対象のADを選択する。東京や大阪のリージョンは1つのみなのでデフォルトから変更する必要はない。
- <font color="blue">bastion_shape</font>: ヘッドノードのShapeとスペックを選択する。
- <font color="blue">cores</font>: bastion_shapeでFlexタイプを選択した場合にCPUコア数指定する。
- <font color="blue">Use custom memory size</font>: bastion_shapeでFlexタイプを選択し、メモリサイズをデフォルトから変更したい場合にはチェックをし、表示されるボックスに数値を入力する。
- <font color="blue">Size of the boot volume in GB</font>: ヘッドノードのBoot Volume容量を指定する。
- <font color="blue">Enable boot volume backup</font>: ヘッドノードのBoot Volumeのバックアップをする場合にはチェックを入れる。
- <font color="blue">Create Object Storage PAR</font>: ヘッドノードのモニタリングメトリックをObjectStorageに保管するためのPARを作成する。障害時にサポートにメトリックデータの共有で利用。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/2be92efa-2e16-999d-22ff-f3a8a132f867.png)

### Compute node options
計算ノードに関する設定
-  <font color="blue">Multiple ADs</font>: 海外リージョンでADが3つある環境で複数のADを利用した環境を構築する場合にチェックを入れる
-  <font color="blue">Use cluster network</font>: RoCEv2によるRDMAを利用する場合にチェックを入れる。これにチェックをするとRoCEv2が利用できるShapeが`Shape of the Compute Node`にリストされ、チェックを入れない場合は、RoCEv2が利用できないShapeがリストされる。
-  <font color="blue">Use compute cluster rather than cluster network</font>: `cluster network`と同様にRoCEv2でInterconnectを構成する手法の一つ。ここでは`cluster network`による構成とする。
-  <font color="blue">Initial cluster size</font>: 恒久的に常時起動する計算ノード数を指定する。0であれば常時起動するノードはなく、Autoscalingベースとなる。
- Hyperthreading enabled: ハイパースレッディングの有効/無効の設定。アプリの特性に応じて選択する。
-  <font color="blue">Size of the boot volume in GB</font>: 計算ノードのBoot Volume容量を指定する。
-  <font color="blue">use marketplace image</font>: RoCEv2を利用する場合は必須。HPC向けのOS設定やOpenMPIなどがインストールされたイメージで計算ノードを起動します。
- <font color="blue">use older marketplace images</font>: RoCEv2対応の古いOSを利用する場合に選択する。
- <font color="blue">Image versions</font>: HPC_OL8 or HPC_OL7 or GPU から選択する。HPC_OL8の選択を推奨。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/85e9deef-524b-e570-c34a-90f944e6ada4.png)


### Additional Login Node
- <font color="blue">Loing Nodes</font>: ヘッドノードのほかに、ユーザーがログインしてジョブを投入する専用のノードが必要な場合はチェックをする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/20d47e9f-724b-19f3-2d82-974a9d7eda9b.png)


### Autoscaling
- <font color="blue">Scheduler based autoscaling</font>: Autoscaling を利用する場合はチェックをする
- <font color="blue">Monitor the autoscaling</font>: Autoscaling のモニタリングをPrometheusとGrafanaで構成する
- <font color="blue">RDMA Latency check</font>: 計算ノードのセットアップの一環で RDMA のレイテンシーチェックをする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/8cc433a9-344d-161f-739d-b0d5f917a022.png)


### API Authentication, needed for autoscaling
- <font color="blue">Use Instance Principal insted of configuration file</font>: ヘッドノードが`Instance Principal`を利用したAPIで計算ノードの作成・削除を実施する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/6125df37-ae0c-06a9-b8bf-f7591980d65b.png)


### Additional file system
追加のNFSサーバの指定を行う。
- <font color="blue">Add another NFS filesystem</font>: 既存のNFSサーバ、または新規のマネージドNFSサービス(FSS)の利用する場合にチェック
- <font color="blue">Create FSS</font>: FSSを新規に作成する
- <font color="blue">NFS Path</font>: ヘッドノード、計算ノードにマウントさせるマウントポイントの指定
- <font color="blue">NFS server Path</font>: 新規に構成するFSSサービス内のPath
- <font color="blue">FSS compartment</font>: FSSを作成するコンパートメントを指定
- <font color="blue">FSS Availability Domain</font>: FSSを配置するADを指定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/5c1adff5-94c2-e44a-5915-7f9ab355180c.png)



### Advanced bastion options
計算ノードの拡張オプションの指定。
- use standard bastion image: ヘッドノードのイメージとして標準的なイメージ(HPC_OL7)を利用する
- Use unsuppported image: ここでは計算ノードと同じHPC_OL8のイメージID(`ocid1.image.oc1..aaaaaaaaceagnur6krcfous5gxp2iwkv2teiqijbntbpwc4b3alxkzyqi25a`)を指定する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/5bf43c5f-f131-5f79-08ea-d8697891aec1.png)


### Advanced storage options
ヘッドノードにBlock Volumeの追加や、計算ノード搭載のNVMeストレージのマウントポイント変更など可能。
今回はデフォルトから変更しない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/c873dedb-332b-eff5-a065-9f9c0940e772.png)


### Network options
今回はデフォルトから変更しない。
- <font color="blue">Use Existing VCN: 既存のVCN配下にデプロイする際にチェックする
- <font color="blue">Deploy Master Node without a public IP</font>: ヘッドノードにPublic IPを持たせないで構成する
- <font color="blue">VCN IP range</font>: VCNのCIDRを指定
- <font color="blue">Master Node subnet IP range</font>: ヘッドノードを配置するPublic SubnetのCIDRを指定
- <font color="blue">Private Subnet IP range</font>: 計算ノードを配置するPrivate IPのCIDRを指定
- <font color="blue">RDMA subnet IP range</font>: RoCEv2のI/Fに設定するInterconnect NetworkのCIDRを指定
- <font color="blue">Additional subnet IP range</font>: 上記とは別にVCN内にPrivate Subnetを作る場合のCIDRを指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/b3fbb68b-508d-b2e0-fd4d-36f6668ada74.png)


### Software
- <font color="blue">Sudo Access</font>: `privilege group`に`sudo`権限を付与する
- <font color="blue">Name of the group with privileges</font>: `privilege group`名を指定する
- <font color="blue">Install SLURM</font>: SLURMをインストールする場合はチェックする
- <font color="blue">Share spool directory</font>: SLURMのspoolディレクトリをNFSで公開する
- <font color="blue">Create a backup Slurm Controller</font>: SLURMの冗長化構成としてセカンダリノードを作成する
- <font color="blue">Create Rack aware topology</font>: 試験的なオプション
- <font color="blue">Queue Name</font>: SLURMで構成するデフォルトのキュー名の指定
- <font color="blue">Install Sparck package manager</font>: Sparck を入れる場合はチェックする
- <font color="blue">Install HPC Cluster Monitoring Tools</font>: モニタリングツールを構成する
- <font color="blue">Install Nvidia Enroot for containerrized GPU workloads</font>: GPUインスタンスでコンテナを利用する場合にチェックを入れる
- <font color="blue">Enable PAM</font>: ユーザーに対して計算ノードへのSSHをさせない場合はチェックを入れる
- <font color="blue">Enable Limits for Slurm jobs</font>: ユーザーに対してSLURMのジョブ投入を制限設定を有効にする


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/b9359de3-bbb7-b7a0-d40a-f25da811b79b.png)


### Debug
- <font color="blue">Configure system</font>: デバッグオプション。計算ノードで上記で指定したセットアップを行わずに作成する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/017226d4-6d9c-f7a5-a7e7-53cc62509fa9.png)


Next をクリックすると以下の確認画面になるので、 Create をクリックします。



## Resouce Manager による作成が開始
Create をクリックすると、Resouce Manager の画面に切り替わりデプロイが開始されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/a948707f-5158-1c78-a1e9-79c1084b6289.png)



### 作成完了
SUCCEEDED となったら完了。
画面左下のOutputsをクリックすると作成されたヘッドノード(bastion)のPublic IPが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/108605/20605a2e-d345-4c16-3dc8-ef4cbaa3e002.png)


以上で作成は完了です。メインページの[チュートリアル](https://qiita.com/itokazu/items/63d2e3cebdcdda5afce0#3-%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB)に進みましょう。