From fc7a421aa8e678bde1167d13861150affbd6e2d3 Mon Sep 17 00:00:00 2001 From: tmiyashi_jp Date: Tue, 9 Apr 2024 13:00:52 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=81=E3=83=A5=E3=83=BC=E3=83=88=E3=83=AA?= =?UTF-8?q?=E3=82=A2=E3=83=AB=EF=BC=9AOCI=20HPC=E3=83=86=E3=82=AF=E3=83=8B?= =?UTF-8?q?=E3=82=AB=E3=83=ABTips=E9=9B=86=20=E3=82=AB=E3=83=86=E3=82=B4?= =?UTF-8?q?=E3=83=AA=EF=BC=9AOCI=20HPC=E3=83=9D=E3=83=BC=E3=82=BF=E3=83=AB?= =?UTF-8?q?=20=E6=9B=B4=E6=96=B0=E5=86=85=E5=AE=B9=EF=BC=9A=E3=82=AF?= =?UTF-8?q?=E3=83=A9=E3=82=B9=E3=82=BF=E3=83=8D=E3=83=83=E3=83=88=E3=83=AF?= =?UTF-8?q?=E3=83=BC=E3=82=AD=E3=83=B3=E3=82=B0=E3=82=A4=E3=83=A1=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E6=9C=80=E6=96=B0=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7?= =?UTF-8?q?=E3=83=B3=EF=BC=88OL8.9=EF=BC=89=E3=82=92=E5=8F=8D=E6=98=A0?= =?UTF-8?q?=E3=80=81=E3=81=93=E3=82=8C=E3=82=89=E3=81=AB=E4=BC=B4=E3=81=86?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=80=81=E5=8F=8A=E3=81=B3=E8=AA=A4=E8=A8=98?= =?UTF-8?q?=E8=A8=82=E6=AD=A3=E3=83=BB=E8=BB=BD=E5=BE=AE=E3=81=AA=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_hpc/spinup-gpu-cluster-withterraform.md | 167 +++++++++--------- .../_hpc/spinup-hpc-cluster-withterraform.md | 39 ++-- .../howto-connect-clusternetwork.md | 17 +- 3 files changed, 117 insertions(+), 106 deletions(-) diff --git a/tutorials/_hpc/spinup-gpu-cluster-withterraform.md b/tutorials/_hpc/spinup-gpu-cluster-withterraform.md index d1d17956cb..984765fbe7 100644 --- a/tutorials/_hpc/spinup-gpu-cluster-withterraform.md +++ b/tutorials/_hpc/spinup-gpu-cluster-withterraform.md @@ -9,12 +9,17 @@ header: overlay_filter: rgba(34, 66, 55, 0.7) #link: https://community.oracle.com/tech/welcome/discussion/4474261/ --- + このチュートリアルは、GPUクラスタのGPUノードに最適なベアメタルインスタンス(本チュートリアルでは **[BM.GPU4.8](https://docs.oracle.com/ja-jp/iaas/Content/Compute/References/computeshapes.htm#bm-gpu)** を使用)を **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** でノード間接続する、機械学習ワークロードを実行するためのGPUクラスタを構築する際のベースとなるインフラストラクチャを、予め用意された **[Terraform](/ocitutorials/hpc/#5-12-terraform)** スクリプトを活用して自動構築し、Dockerコンテナ上で **[NCCL(NVIDIA Collective Communication Library)](https://developer.nvidia.com/nccl)** のGPU間通信性能を **[NCCL Tests](https://github.com/nvidia/nccl-tests)** で検証します。 この自動構築は、 **Terraform** スクリプトを **[リソース・マネージャ](/ocitutorials/hpc/#5-2-リソースマネージャ)** に読み込ませて作成する **[スタック](/ocitutorials/hpc/#5-3-スタック)** を使用する方法と、 **Terraform** 実行環境を用意して **Terraform** CLIを使用する方法から選択することが出来ます。 このチュートリアルで作成する環境は、ユーザ管理、ホスト名管理、共有ファイルシステム、プログラム開発環境等、必要なソフトウェア環境をこの上に整備し、ご自身の要件に沿ったGPUクラスタを構築する際の基礎インフラストラクチャとして利用することが可能です。 -なお、これらのクラスタ管理に必要なソフトウェアの導入までを自動化する **[HPCクラスタスタック](/ocitutorials/hpc/#5-10-hpcクラスタスタック)** も利用可能で、詳細は **[GPUクラスタを構築する(スタティッククラスタ自動構築編)](/ocitutorials/hpc/spinup-gpu-cluster-withstack)** を参照ください。 +なお、これらのクラスタ管理に必要なソフトウェアの導入までを自動化する **[HPCクラスタスタック](/ocitutorials/hpc/#5-10-hpcクラスタスタック)** も利用可能で、詳細は **[GPUクラスタを構築する(スタティッククラスタ自動構築編)](/ocitutorials/hpc/spinup-gpu-cluster-withstack)** を参照してください。 ![システム構成図](architecture_diagram.png) @@ -76,7 +81,7 @@ Bastionノード構築は、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)* 本章は、ひな型となる **[Terraform](/ocitutorials/hpc/#5-12-terraform)** スクリプトを **GitHub** パブリックレポジトリから取り込むための **[構成ソース・プロバイダ](/ocitutorials/hpc/#5-14-構成ソースプロバイダ)** を作成します。 -**構成ソース・プロバイダ** の作成は、 **[ここ](/ocitutorials/hpc/#5-14-構成ソースプロバイダ)** を参照ください。 +**構成ソース・プロバイダ** の作成は、 **[ここ](/ocitutorials/hpc/#5-14-構成ソースプロバイダ)** を参照してください。 ### 0-1-2. スタック作成 @@ -108,25 +113,27 @@ Bastionノード構築は、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)* ![画面ショット](stack_page02.png) 4.2 **Compute/GPU node options** フィールド - - **Display name postfix :** GPUノードホスト名の接尾辞(\*1) + - **Display name postfix :** GPUノードホスト名の接尾辞(※1) - **Shape :** **BM.GPU4.8** - **Node count :** GPUノードのノード数(デフォルト:2) - - **Image OCID :** GPUノードのイメージOCID(\*2) + - **Image OCID :** GPUノードのイメージOCID(※2) - **Boot volume size :** GPUノードのブートボリュームサイズ(GB) - - **cloud-config :** GPUノードの **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)** 設定ファイル( **cloud-config** )(\*3) - - **NPS for BM.GPU4.8 :** GPUノードの **NPS** 設定値 (デフォルト:NPS4) (\*4) - - **SMT :** GPUノードの **SMT** 設定値 (デフォルト:有効) (\*4) + - **cloud-config :** GPUノードの **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)** 設定ファイル( **cloud-config** )(※3) + - **NPS for BM.GPU4.8 :** GPUノードの **NPS** 設定値 (デフォルト:NPS4) (※4) + - **SMT :** GPUノードの **SMT** 設定値 (デフォルト:有効) (※4) ![画面ショット](stack_page03.png) - *1) 例えば **gpu4-ol79** と指定した場合、GPUノードのホスト名は **inst-xxxxx-gpu4-ol79** となります。( **xxxxx** はランダムな文字列) - *2) 以下のOCIDを指定します。 + ※1) 例えば **gpu4-ol79** と指定した場合、GPUノードのホスト名は **inst-xxxxx-gpu4-ol79** となります。( **xxxxx** はランダムな文字列) + ※2)以下のOCIDを指定します。 - ```sh - ocid1.image.oc1..aaaaaaaalro3vf5xh34zvg42i3j5c4kp6rx4ndoeq6c5v5zzotl5gwjrnxra - ``` + | No.
(※5) | **Oracle Linux**
バージョン | OCID | + | :---------: | :-----------------------: | :---------------------------------------------------------------------------: | + | 7 | 8.9 | ocid1.image.oc1..aaaaaaaa2uaq7zbntzrc5hwoyytmpifjmrjhcfgbotyb5gbfq4cnro46cn3q | + | 11 | 8.8 | ocid1.image.oc1..aaaaaaaaeka3qe2v5ucxztilltohgmsyr63s3cd55uidtve4mtietoafopeq | + | 8 | 7.9 | ocid1.image.oc1..aaaaaaaacvmchv5h7zp54vyntetzkia3hrtr5tyz7j6oiairdfjw3rutgb3q | - *3) 以下の **cloud-config** を使用します。これをテキストファイルとして保存し、ブラウザで読み込みます。 + ※3)以下をテキストファイルとして保存し、ブラウザから読み込みます。 ```sh #cloud-config @@ -181,9 +188,6 @@ Bastionノード構築は、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)* # Expand root file system to those set by instance configuration - /usr/libexec/oci-growfs -y # - # Set up cluster network interface - - systemctl start oci-rdma-configure - # # Add public subnet to DNS search - sed -i '/^search/s/$/ public.vcn.oraclevcn.com/g' /etc/resolv.conf - chattr -R +i /etc/resolv.conf @@ -193,7 +197,9 @@ Bastionノード構築は、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)* - mount /home ``` - *4) 詳細は、 **[パフォーマンス関連Tips集](/ocitutorials/hpc/#2-2-パフォーマンス関連tips集)** の **[パフォーマンスに関連するベア・メタル・インスタンスのBIOS設定方法](/ocitutorials/hpc/benchmark/bios-setting/)** を参照ください。 + ※4)詳細は、 **[パフォーマンス関連Tips集](/ocitutorials/hpc/#2-2-パフォーマンス関連tips集)** の **[パフォーマンスに関連するベア・メタル・インスタンスのBIOS設定方法](/ocitutorials/hpc/benchmark/bios-setting/)** を参照してください。 + + ※5)**[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[クラスタネットワーキングイメージの選び方](/ocitutorials/hpc/tech-knowhow/osimage-for-cluster/)** の **[1. クラスタネットワーキングイメージ一覧](/ocitutorials/hpc/tech-knowhow/osimage-for-cluster/#1-クラスタネットワーキングイメージ一覧)** のイメージNo.です。 5. 表示される **確認** 画面で、これまでの設定項目が意図したものになっているかを確認し、以下 **作成されたスタックで適用を実行しますか。** フィールドの **適用の実行** をチェックオフし、下部の **作成** ボタンをクリックします。 @@ -223,92 +229,95 @@ Bastionノード構築は、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)* - **Terraform** インストール - **Terraform** 実行環境とOCI間の認証関係締結(APIキー登録) -具体的な **Terraform** 実行環境構築手順は、チュートリアル **[TerraformでOCIの構築を自動化する](https://oracle-japan.github.io/ocitutorials/intermediates/terraform/)** の **[2. Terraform環境の構築](https://oracle-japan.github.io/ocitutorials/intermediates/terraform/#2terraform%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89)** を参照ください。 -また、関連するOCI公式ドキュメントは、 **[ここ](https://docs.oracle.com/ja-jp/iaas/developer-tutorials/tutorials/tf-provider/01-summary.htm)** を参照ください。 +具体的な **Terraform** 実行環境構築手順は、チュートリアル **[TerraformでOCIの構築を自動化する](https://oracle-japan.github.io/ocitutorials/intermediates/terraform/)** の **[2. Terraform環境の構築](https://oracle-japan.github.io/ocitutorials/intermediates/terraform/#2terraform%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89)** を参照してください。 +また、関連するOCI公式ドキュメントは、 **[ここ](https://docs.oracle.com/ja-jp/iaas/developer-tutorials/tutorials/tf-provider/01-summary.htm)** を参照してください。 -### 0-2-2. Terraformスクリプト作成 +### 0-2-2. Terraformスクリプト概要 本チュートリアルで使用するGPUクラスタ構築用の **[Terraform](/ocitutorials/hpc/#5-12-terraform)** スクリプトは、そのひな型を **GitHub** のパブリックレポジトリで公開しており、以下のファイル群で構成されています。 -| ファイル名 | 用途 | -| ---------------- | --------------------------- | -| cn.tf | **[インスタンス構成](/ocitutorials/hpc/#5-7-インスタンス構成)** と **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** の定義 | -| outputs.tf | 構築したリソース情報の出力 | -| terraform.tfvars | **Terraform** スクリプト内で使用する変数値の定義 | -| variables.tf | **Terraform** スクリプト内で使用する変数の型の定義 | -| instance.tf | Bastionノードの定義 | -| provider.tf | テナント・ユーザ・リージョンの定義 | -| vcn.tf | VCNと関連するネットワークリソースの定義 | +| ファイル名 | 用途 | +| ---------------- | ---------------------------------------------------------------------------------------------------------- | +| cn.tf | **[インスタンス構成](/ocitutorials/hpc/#5-7-インスタンス構成)** と **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** の定義 | +| outputs.tf | 構築したリソース情報の出力 | +| terraform.tfvars | **Terraform** スクリプト内で使用する変数値の定義 | +| variables.tf | **Terraform** スクリプト内で使用する変数の型の定義 | +| instance.tf | Bastionノードの定義 | +| provider.tf | **テナンシ** ・ユーザ・ **リージョン** の定義 | +| vcn.tf | **仮想クラウド・ネットワーク** と関連するネットワークリソースの定義 | -これらのうち自身の環境に合わせて修正する箇所は、 **terraform.tfvars** と **provider.tf** に集約しています。 +これらのうち自身の環境に合わせて修正する箇所は、基本的に **terraform.tfvars** と **provider.tf** に集約しています。 -また、これらのファイルと同じディレクトリに **user_data** ディレクトリが存在し、 **cloud-config** ファイル群を格納しています。 +また、これらのファイルと同じディレクトリに **user_data** ディレクトリが存在し、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)** 設定ファイル( **cloud-config** )を格納しています。 この **cloud-config** を修正することで、構築するGPUクラスタのOSレベルのカスタマイズをご自身の環境に合わせて追加・変更することも可能でます。 -**Terraform** スクリプトの作成は、まず以下の **GitHub** レポジトリからひな型となる **Terraform** スクリプトを **Terraform** 実行環境にダウンロードしますが、 +### 0-2-3. Terraformスクリプト作成 -**[https://github.com/fwiw6430/tutorial_cn](https://github.com/fwiw6430/tutorial_cn)** -これには、以下コマンドを **Terraform** 実行環境のopcユーザで実行するか、 +1. **Terraform** スクリプトの作成は、まず以下の **GitHub** レポジトリからひな型となる **Terraform** スクリプトを **Terraform** 実行環境にダウンロードしますが、 -```sh -$ sudo dnf install -y git -$ git clone https://github.com/fwiw6430/tutorial_cn -``` + **[https://github.com/fwiw6430/tutorial_cn](https://github.com/fwiw6430/tutorial_cn)** -**GitHub** の **Terraform** スクリプトレポジトリのページからzipファイルを **Terraform** 実行環境にダウンロード・展開することで行います。 + これには、以下コマンドを **Terraform** 実行環境のopcユーザで実行するか、 -次に、ダウンロードした **Terraform** スクリプトのうち **terraform.tfvars** と **provider.tf** 内の以下 **Terraform** 変数を自身の環境に合わせて修正します。 -この際、ひな型ファイル内のこれら **Terraform** 変数は、予めコメント( **#** で始まる行)として埋め込まれているため、このコメント行を有効化して修正します。特に **provider.tf** のひな型はファイルは、全行がコメントとなっているため、これらを全て有効化した上で、 **Terraform** 変数を設定します。 - -[ **provider.tf** ] + ```sh + $ sudo dnf install -y git + $ git clone https://github.com/fwiw6430/tutorial_cn + ``` -| 変数名 | 設定値 | 確認方法 | -| ---------------- | -------------------------- | -------------------------------------------------------------------------------------------- | -| tenancy_ocid | 使用するテナントのOCID | **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/API/Concepts/apisigningkey.htm#five)** を参照 | -| user_ocid | 使用するユーザのOCID | **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/API/Concepts/apisigningkey.htm#five)** を参照 | -| private_key_path | OCIに登録したAPIキーの秘密キーのパス | - | -| fingerprint | OCIに登録したAPIキーのフィンガープリント | **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/API/Concepts/apisigningkey.htm#four)** を参照 | -| region | GPUクラスタをデプロイするリージョン識別子 | **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/General/Concepts/regions.htm)** を参照 | + **GitHub** の **Terraform** スクリプトレポジトリのページからzipファイルを **Terraform** 実行環境にダウンロード・展開することで行います。 -[ **terraform.tfvars** ] +2. ダウンロードした **Terraform** スクリプトのうち、 **terraform.tfvars** と **provider.tf** 内の以下 **Terraform** 変数を自身の環境に合わせて修正します。 +この際、ひな型ファイル内のこれら **Terraform** 変数は、予めコメント( **#** で始まる行)として埋め込まれているため、このコメント行を有効化して修正します。特に **provider.tf** のひな型はファイルは、全行がコメントとなっているため、これらを全て有効化した上で、 **Terraform**変数を設定します。 -| 変数名 | 設定値 | 確認方法 | -| ------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| sc_compartment_ocid | GPUクラスタをデプロイするコンパートメントのOCID | **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/GSG/Tasks/contactingsupport_topic-Finding_the_OCID_of_a_Compartment.htm)** を参照 | -| sc_ad | GPUクラスタをデプロイする可用性ドメイン識別子 | (\*5) | -| sc_ssh_key | Bastionノードログインに使用するSSH秘密鍵に対する公開鍵 | - | -| sc_cn_display_name | GPUノードホスト名の接尾辞 | (\*6) | -| sc_cn_shape | GPUノードに使用するシェイプ
・ **BM.GPU4.8** | - | -| sc_cn_node_count | GPUノードのノード数 | - | -| sc_cn_image | GPUノードに使用するOSイメージのOCID | (\*7) | -| sc_cn_boot_vol_size | ブートボリュームのサイズ(GB) | - | -| sc_cn_cloud_config | **cloud-config** ファイルをbase64エンコードした文字列 | (\*8) | -| sc_cn_nps_gpu40 | GPUノード ( **BM.GPU4.8** の場合) の **NPS** BIOS設定値 | (\*9) | -| sc_cn_nps_gpu80 | GPUノード ( **BM.GPU.A100-v2.8** の場合) の **NPS** BIOS設定値 | (\*9) | -| sc_cn_smt | 計算ノードの **SMT** BIOS設定値 | (\*9) | -| | | | + [ **provider.tf** ] -\*5) OCIコンソールメニューから **コンピュート** → **インスタンス** を選択し **インスタンスの作成** ボタンをクリックし、表示される以下 **配置** フィールドで確認出来ます。 + | 変数名 | 設定値 | 確認方法 | + | ---------------- | -------------------------- | -------------------------------------------------------------------------------------------- | + | tenancy_ocid | 使用するテナントのOCID | **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/API/Concepts/apisigningkey.htm#five)** を参照 | + | user_ocid | 使用するユーザのOCID | **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/API/Concepts/apisigningkey.htm#five)** を参照 | + | private_key_path | OCIに登録したAPIキーの秘密キーのパス | - | + | fingerprint | OCIに登録したAPIキーのフィンガープリント | **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/API/Concepts/apisigningkey.htm#four)** を参照 | + | region | GPUクラスタをデプロイするリージョン識別子 | **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/General/Concepts/regions.htm)** を参照 | -![画面ショット](console_page01.png) + [ **terraform.tfvars** ] -\*6) 例えば **gpu4-ol79** と指定した場合、GPUノードのホスト名は **inst-xxxxx-gpu4-ol79** となります。( **xxxxx** はランダムな文字列) + | 変数名 | 設定値 | 確認方法 | + | ------------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | + | sc_compartment_ocid | GPUクラスタをデプロイするコンパートメントのOCID | **[ここ](https://docs.oracle.com/ja-jp/iaas/Content/GSG/Tasks/contactingsupport_topic-Finding_the_OCID_of_a_Compartment.htm)** を参照 | + | sc_ad | GPUクラスタをデプロイする可用性ドメイン識別子 | (※6) | + | sc_ssh_key | Bastionノードログインに使用するSSH秘密鍵に対する公開鍵 | - | + | sc_cn_display_name | GPUノードホスト名の接尾辞 | (※7) | + | sc_cn_shape | GPUノードに使用するシェイプ
・ **BM.GPU4.8** | - | + | sc_cn_node_count | GPUノードのノード数 | - | + | sc_cn_image | GPUノードに使用するOSイメージのOCID | (※8) | + | sc_cn_boot_vol_size | ブートボリュームのサイズ(GB) | - | + | sc_cn_cloud_config | **user_data** ディレクトリに格納するGPUノード用 **cloud-config** ファイル名
・ **cloud-init_cngpu.cfg** | - | + | sc_cn_nps_gpu40 | GPUノード ( **BM.GPU4.8** の場合) の **NPS** BIOS設定値 | (※9) | + | sc_cn_nps_gpu80 | GPUノード ( **BM.GPU.A100-v2.8** の場合) の **NPS** BIOS設定値 | (※9) | + | sc_cn_smt | 計算ノードの **SMT** BIOS設定値 | (※9) | + | | | | -\*7) 以下のOCIDを指定します。(ダウンロードした **Terraform** スクリプトの **terraform.tfvars** に以下のOCIDがコメントとして埋め込まれています) + ※6)OCIコンソールメニューから **コンピュート** → **インスタンス** を選択し **インスタンスの作成** ボタンをクリックし、表示される以下 **配置** フィールドで確認出来ます。 -```sh -ocid1.image.oc1..aaaaaaaalro3vf5xh34zvg42i3j5c4kp6rx4ndoeq6c5v5zzotl5gwjrnxra -``` + ![画面ショット](console_page01.png) -\*8) 以下コマンドの出力を使用します。 + ※7)例えば **gpu4-ol79** と指定した場合、GPUノードのホスト名は **inst-xxxxx-gpu4-ol79** となります。( **xxxxx** はランダムな文字列) + ※8)コメントとして埋め込まれているOSイメージOCIDから、コメント文の記載を参考に適切なOSイメージOCIDのコメントを外して使用します。 + ※9)詳細は、 **[パフォーマンス関連Tips集](/ocitutorials/hpc/#2-2-パフォーマンス関連tips集)** の **[パフォーマンスに関連するベア・メタル・インスタンスのBIOS設定方法](/ocitutorials/hpc/benchmark/bios-setting/)** を参照してください。 -```sh -$ cd tutorial_cn -$ base64 ./user_data/cloud-init_cngpu.cfg | tr -d '\n'; echo -``` +3. ダウンロードした **Terraform** スクリプトのうち、 **cn.tf** を以下のように修正します。 -\*9) 詳細は、 **[パフォーマンス関連Tips集](/ocitutorials/hpc/#2-2-パフォーマンス関連tips集)** の **[パフォーマンスに関連するベア・メタル・インスタンスのBIOS設定方法](/ocitutorials/hpc/benchmark/bios-setting/)** を参照ください。 + ```sh + $ diff cn.tf_org cn.tf + 13,14c13,14 + < # user_data = "${base64encode(file("./user_data/${var.sc_cn_cloud_config}"))}" + < user_data = var.sc_cn_cloud_config + --- + > user_data = "${base64encode(file("./user_data/${var.sc_cn_cloud_config}"))}" + > # user_data = var.sc_cn_cloud_config + $ + ``` *** # 1. GPUクラスタ構築 diff --git a/tutorials/_hpc/spinup-hpc-cluster-withterraform.md b/tutorials/_hpc/spinup-hpc-cluster-withterraform.md index 9287ed6848..84f7b255ab 100644 --- a/tutorials/_hpc/spinup-hpc-cluster-withterraform.md +++ b/tutorials/_hpc/spinup-hpc-cluster-withterraform.md @@ -19,7 +19,7 @@ table, th, td { この自動構築は、 **Terraform** スクリプトを **[リソース・マネージャ](/ocitutorials/hpc/#5-2-リソースマネージャ)** に読み込ませて作成する **[スタック](/ocitutorials/hpc/#5-3-スタック)** を使用する方法と、 **Terraform** 実行環境を用意して **Terraform** CLIを使用する方法から選択することが出来ます。 このチュートリアルで作成する環境は、ユーザ管理、ホスト名管理、共有ファイルシステム、プログラム開発環境、ジョブスケジューラ等、必要なソフトウェア環境をこの上に整備し、ご自身の要件に沿ったHPCクラスタを構築する際の基礎インフラストラクチャとして利用することが可能です。 -なお、これらのクラスタ管理に必要なソフトウェアの導入までを自動化する **[HPCクラスタスタック](/ocitutorials/hpc/#5-10-hpcクラスタスタック)** も利用可能で、詳細は **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の **[HPCクラスタを構築する(スタティッククラスタ自動構築編)](/ocitutorials/hpc/spinup-hpc-cluster)** を参照ください。 +なお、これらのクラスタ管理に必要なソフトウェアの導入までを自動化する **[HPCクラスタスタック](/ocitutorials/hpc/#5-10-hpcクラスタスタック)** も利用可能で、詳細は **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の **[HPCクラスタを構築する(スタティッククラスタ自動構築編)](/ocitutorials/hpc/spinup-hpc-cluster)** を参照してください。 ![システム構成図](architecture_diagram.png) @@ -79,7 +79,7 @@ Bastionノード構築は、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)* 本章は、ひな型となる **[Terraform](/ocitutorials/hpc/#5-12-terraform)** スクリプトを **GitHub** パブリックレポジトリから取り込むための **[構成ソース・プロバイダ](/ocitutorials/hpc/#5-14-構成ソースプロバイダ)** を作成します。 -**構成ソース・プロバイダ** の作成は、 **[ここ](/ocitutorials/hpc/#5-14-構成ソースプロバイダ)** を参照ください。 +**構成ソース・プロバイダ** の作成は、 **[ここ](/ocitutorials/hpc/#5-14-構成ソースプロバイダ)** を参照してください。 ### 0-1-2. スタック作成 @@ -111,26 +111,27 @@ Bastionノード構築は、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)* ![画面ショット](stack_page02.png) 4.2 **Compute/GPU node options** フィールド - - **Display name postfix :** 計算ノードホスト名の接尾辞(*1) + - **Display name postfix :** 計算ノードホスト名の接尾辞(※1) - **Shape :** **BM.Optimized3.36** - **Node count :** 計算ノードのノード数(デフォルト:2) - - **Image OCID :** 計算ノードのイメージOCID(*2) + - **Image OCID :** 計算ノードのイメージOCID(※2) - **Boot volume size :** 計算ノードのブートボリュームサイズ(GB) - - **cloud-config :** 計算ノードの **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)** 設定ファイル( **cloud-config** )(*3) - - **NPS for BM.Optimized3.36 :** 計算ノードの **NPS** 設定値 (デフォルト:NPS1) (*4) - - **SMT :** 計算ノードの **SMT** 設定値 (デフォルト:有効) (*4) + - **cloud-config :** 計算ノードの **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)** 設定ファイル( **cloud-config** )(※3) + - **NPS for BM.Optimized3.36 :** 計算ノードの **NPS** 設定値 (デフォルト:NPS1) (※4) + - **SMT :** 計算ノードの **SMT** 設定値 (デフォルト:有効) (※4) ![画面ショット](stack_page03.png) - *1) 例えば **x9-ol88** と指定した場合、計算ノードのホスト名は **inst-xxxxx-x9-ol88** となります。( **xxxxx** はランダムな文字列) - *2)以下のOCIDを指定します。 + ※1) 例えば **x9-ol88** と指定した場合、計算ノードのホスト名は **inst-xxxxx-x9-ol88** となります。( **xxxxx** はランダムな文字列) + ※2)以下のOCIDを指定します。 - | **Oracle Linux**
バージョン | OCID | - | :-----------------------: | :----------------------------------------------------------------------------: | - | 7.9 | ocid1.image.oc1..aaaaaaaalq4xqgkvjkrvvcvsfmfkbljgt6hfdqymyt6gpekuf622a6xktbcq | - | 8.8 | ocid1.image.oc1..aaaaaaaajkzfwcucvqdui7rksrvgcaagoxutbh56pecbff7qz7gbfpruhzja | + | No.
(※5) | **Oracle Linux**
バージョン | OCID | + | :---------: | :-----------------------: | :---------------------------------------------------------------------------: | + | 1 | 8.9 | ocid1.image.oc1..aaaaaaaaxiqlqer2ycd7hgto7in7raojq7v5kud6wlakmm7u7q64ai352tzq | + | 3 | 8.8 | ocid1.image.oc1..aaaaaaaa2irxaj3eqti6nlggadyo2avsinc6cscxrphsldiuqebcaljlqomq | + | 2 | 7.9 | ocid1.image.oc1..aaaaaaaano7btfbh7cvbaygka4fehemtsal7f7l2qx6oqvbwua6xnszdvaha | - *3)以下をテキストファイルとして保存し、ブラウザから読み込みます。 + ※3)以下をテキストファイルとして保存し、ブラウザから読み込みます。 ```sh #cloud-config @@ -160,7 +161,9 @@ Bastionノード構築は、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)* - mount /home ``` - *4)詳細は、 **[OCI HPCパフォーマンス関連情報](/ocitutorials/hpc/#2-oci-hpcパフォーマンス関連情報)** の **[パフォーマンスに関連するベア・メタル・インスタンスのBIOS設定方法](/ocitutorials/hpc/benchmark/bios-setting/)** を参照ください。 + ※4)詳細は、 **[OCI HPCパフォーマンス関連情報](/ocitutorials/hpc/#2-oci-hpcパフォーマンス関連情報)** の **[パフォーマンスに関連するベア・メタル・インスタンスのBIOS設定方法](/ocitutorials/hpc/benchmark/bios-setting/)** を参照してください。 + + ※5)**[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[クラスタネットワーキングイメージの選び方](/ocitutorials/hpc/tech-knowhow/osimage-for-cluster/)** の **[1. クラスタネットワーキングイメージ一覧](/ocitutorials/hpc/tech-knowhow/osimage-for-cluster/#1-クラスタネットワーキングイメージ一覧)** のイメージNo.です。 5. 表示される **確認** 画面で、これまでの設定項目が意図したものになっているかを確認し、以下 **作成されたスタックで適用を実行しますか。** フィールドの **適用の実行** をチェックオフし、下部の **作成** ボタンをクリックします。 @@ -190,8 +193,8 @@ Bastionノード構築は、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)* - **Terraform** インストール - **Terraform** 実行環境とOCI間の認証関係締結(APIキー登録) -具体的な **Terraform** 実行環境構築手順は、チュートリアル **[TerraformでOCIの構築を自動化する](https://oracle-japan.github.io/ocitutorials/intermediates/terraform/)** の **[2. Terraform環境の構築](https://oracle-japan.github.io/ocitutorials/intermediates/terraform/#2terraform%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89)** を参照ください。 -また、関連するOCI公式ドキュメントは、 **[ここ](https://docs.oracle.com/ja-jp/iaas/developer-tutorials/tutorials/tf-provider/01-summary.htm)** を参照ください。 +具体的な **Terraform** 実行環境構築手順は、チュートリアル **[TerraformでOCIの構築を自動化する](https://oracle-japan.github.io/ocitutorials/intermediates/terraform/)** の **[2. Terraform環境の構築](https://oracle-japan.github.io/ocitutorials/intermediates/terraform/#2terraform%E7%92%B0%E5%A2%83%E3%81%AE%E6%A7%8B%E7%AF%89)** を参照してください。 +また、関連するOCI公式ドキュメントは、 **[ここ](https://docs.oracle.com/ja-jp/iaas/developer-tutorials/tutorials/tf-provider/01-summary.htm)** を参照してください。 ### 0-2-2. Terraformスクリプト概要 @@ -262,7 +265,7 @@ Bastionノード構築は、 **[cloud-init](/ocitutorials/hpc/#5-11-cloud-init)* *6)例えば **x9-ol88** と指定した場合、計算ノードのホスト名は **inst-xxxxx-x9-ol88** となります。( **xxxxx** はランダムな文字列) *7)コメントとして埋め込まれているOSイメージOCIDから、コメント文の記載を参考に適切なOSイメージOCIDのコメントを外して使用します。 - *8)詳細は、 **[OCI HPCパフォーマンス関連情報](/ocitutorials/hpc/#2-oci-hpcパフォーマンス関連情報)** の **[パフォーマンスに関連するベア・メタル・インスタンスのBIOS設定方法](/ocitutorials/hpc/benchmark/bios-setting/)** を参照ください。 + *8)詳細は、 **[OCI HPCパフォーマンス関連情報](/ocitutorials/hpc/#2-oci-hpcパフォーマンス関連情報)** の **[パフォーマンスに関連するベア・メタル・インスタンスのBIOS設定方法](/ocitutorials/hpc/benchmark/bios-setting/)** を参照してください。 3. ダウンロードした **Terraform** スクリプトのうち、 **cn.tf** を以下のように修正します。 diff --git a/tutorials/_hpc/tech-knowhow/howto-connect-clusternetwork.md b/tutorials/_hpc/tech-knowhow/howto-connect-clusternetwork.md index 73044cb223..23a4063bed 100644 --- a/tutorials/_hpc/tech-knowhow/howto-connect-clusternetwork.md +++ b/tutorials/_hpc/tech-knowhow/howto-connect-clusternetwork.md @@ -43,16 +43,16 @@ table, th, td { ここで **接続条件 3.** は、全てのソフトウェアを予めインストールした **[クラスタネットワーキングイメージ](/ocitutorials/hpc/#5-13-クラスタネットワーキングイメージ)** が用意されており、これを利用することでそのインストールを省略することが可能です。 この **クラスタ・ネットワーキングイメージ** は、 **接続条件 3-3.** と **接続条件 3-4.** のユーティリティソフトウェアの提供方法について、 **[Oracle Cloud Agent](https://docs.oracle.com/ja-jp/iaas/Content/Compute/Tasks/manage-plugins.htm)** (以降 **OCA** と呼称)プラグインを使用するイメージと個別RPMとしてインストールされているイメージが存在し、これらのユーティリティソフトウェアが実施する **接続処理 1.** と **接続処理 2.** の実行方法が異なります。 -**クラスタネットワーキングイメージ** を適切に選択する方法は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[クラスタネットワーキングイメージの選び方](/ocitutorials/hpc/tech-knowhow/osimage-for-cluster/)** を参照ください。 +**クラスタネットワーキングイメージ** を適切に選択する方法は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[クラスタネットワーキングイメージの選び方](/ocitutorials/hpc/tech-knowhow/osimage-for-cluster/)** を参照してください。 -下表は、 **OCA** プラグインを使用する場合と個別RPMの機能を利用する場合の **クラスタ・ネットワーク** 接続方法をまとめています。 +下表は、 **OCA** プラグインを使用する場合と個別RPMの機能を使用する場合の **クラスタ・ネットワーク** 接続方法をまとめています。 | | 使用する **OCA** プラグイン | 使用するRPM・
Systemdサービス | 使用する
**クラスタ・ネットワーキングイメージ** 名
の先頭(※1) | | :-: | :-: |:------------------------: | :---------------------------: | -| **OCA**
プラグイン | Compute HPC RDMA Authentication
Compute HPC RDMA Auto-Configuration |oracle-cloud-agent | OracleLinux-8-OCA
OracleLinux-7-OCA | -| 個別RPM | - | oci-cn-auth
(oci-cn-auth-renew)
oci-rdma-configure
oci-hpc-dapl-configure
oci-hpc-mlx-configure |OracleLinux-8-RHCK
OracleLinux-7-RHCK | +| **OCA**
プラグイン | Compute HPC RDMA Authentication
Compute HPC RDMA Auto-Configuration |oracle-cloud-agent
oracle-cloud-agent-updater | OracleLinux-8-OCA
OracleLinux-7-OCA | +| 個別RPM | - | oci-cn-auth
oci-cn-auth-renew
oci-rdma-configure
oci-hpc-dapl-configure
oci-hpc-mlx-configure |OracleLinux-8-RHCK
OracleLinux-7-RHCK | -※1)詳細は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[クラスタネットワーキングイメージの選び方](/ocitutorials/hpc/tech-knowhow/osimage-for-cluster/)** を参照ください。 +※1)詳細は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[クラスタネットワーキングイメージの選び方](/ocitutorials/hpc/tech-knowhow/osimage-for-cluster/)** を参照してください。 また下表は、それぞれの接続方法の利得表で、自身の要件に合わせてどちらの方法を使用するかを判断します。 特別な要件が無ければ、 **OCA** プラグインを使用する方法を選択します。 @@ -62,8 +62,7 @@ table, th, td { | **OCA**
プラグイン | インスタンスデプロイ後に接続完了 | **OCA** 常駐によるCPUリソース消費(※2) | | 個別RPM | **OCA** 停止によるCPUリソース消費抑止が可能(※2) | インスタンスデプロイ後に接続処理が必要 | -※2)計算/GPUノード上で **OCA** がCPUリソースを消費するため、これによるアプリケーションのスケーラビリティへの影響を指しています。 -この詳細は、 **[OCI HPCパフォーマンス関連情報](/ocitutorials/hpc/#2-oci-hpcパフォーマンス関連情報)** の **[不要サービス停止によるパフォーマンスチューニング方法](/ocitutorials/hpc/benchmark/stop-unused-service/)** を参照ください。 +※2)計算/GPUノード上で **OCA** がCPUリソースを消費するため、これによるアプリケーションのスケーラビリティへの影響を指しています。この詳細は、 **[OCI HPCパフォーマンス関連情報](/ocitutorials/hpc/#2-oci-hpcパフォーマンス関連情報)** の **[不要サービス停止によるパフォーマンスチューニング方法](/ocitutorials/hpc/benchmark/stop-unused-service/)** を参照ください。 なお、 **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)** の **[HPCクラスタ](/ocitutorials/hpc/#1-1-hpcクラスタ)** カテゴリのチュートリアルは、全て **OCA** プラグインを使用する方法を採用しています。 @@ -74,9 +73,9 @@ table, th, td { 本章は、 **OCA** プラグインを使用して **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** に接続する手順を解説します。 -以下の手順が完了すると、デプロイしたインスタンス上で **クラスタ・ネットワーク** との802.1X認証と **クラスタ・ネットワーク** 接続用ネットワークインターフェースへのIPアドレス付与が完了し、 **クラスタ・ネットワーク** に接続された状態となります。 +以下の手順が完了すると、デプロイしたインスタンス上で **クラスタ・ネットワーク** との802.1X認証と **クラスタ・ネットワーク** 接続用ネットワークインターフェース作成が完了し、 **クラスタ・ネットワーク** に接続された状態となります。 -この際、 **クラスタ・ネットワーク** 用のネットワークインターフェースは、 **10.224.0.0/xx** のIPアドレス範囲が割当てられます。ここで **xx** のサブネットマスクは、 **仮想クラウド・ネットワーク** にプライマリVNICで接続するネットワークインターフェースに使用するものと同じものが使用されます。 +この際、 **クラスタ・ネットワーク** 用のネットワークインターフェースは、 **192.168.0.0/xx** のIPアドレス範囲が割当てられます。ここで **xx** のサブネットマスクは、 **仮想クラウド・ネットワーク** にプライマリVNICで接続するネットワークインターフェースに使用するものと同じものが使用されます。 1. **OCA** プラグイン対応 **[クラスタネットワーキングイメージ](/ocitutorials/hpc/#5-13-クラスタネットワーキングイメージ)** の特定 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)** の **[クラスタネットワーキングイメージの選び方](/ocitutorials/hpc/tech-knowhow/osimage-for-cluster/)** の **[1. クラスタネットワーキングイメージ一覧](/ocitutorials/hpc/tech-knowhow/osimage-for-cluster/#1-クラスタネットワーキングイメージ一覧)** を参照し、使用する **クラスタ・ネットワーキングイメージ** を特定します。