Skip to content

Commit

Permalink
チュートリアル:OCI HPCテクニカルTips集
Browse files Browse the repository at this point in the history
カテゴリ:OCI HPCポータル
更新内容:"Slurm環境での利用を前提とするUCX通信フレームワークベースのOpenMPI構築方法"でUCXをソースからビルドする方法に変更・ソフトウェアを最新にアップデート、"Slurmによるリソース管理・ジョブ管理システム構築方法"のソフトウェアを最新にアップデート、これらに伴う修正及び誤記訂正・軽微な修正
  • Loading branch information
fwiw6430 committed Dec 11, 2024
1 parent db67140 commit a0480d0
Show file tree
Hide file tree
Showing 9 changed files with 166 additions and 131 deletions.
5 changes: 3 additions & 2 deletions _pages/hpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -415,11 +415,12 @@ HPC/機械学習ワークロードを実行する際に有益なテクニカル

## 3-5. ソフトウェア環境

- **[Slurm環境での利用を前提とするOpenMPI構築方法](/ocitutorials/hpc/tech-knowhow/build-openmpi/)**
- **[Slurm環境での利用を前提とするUCX通信フレームワークベースのOpenMPI構築方法](/ocitutorials/hpc/tech-knowhow/uild-openmpi/)**

**[OpenMPI](https://www.open-mpi.org/)** は、最新のMPI言語規格に準拠し、HPC/機械学習ワークロード実行に必要とされる様々な機能を備えたオープンソースのMPI実装です。
**OpenMPI** で作成したアプリケーションのHPC/GPUクラスタに於ける実行は、計算リソース有効利用の観点から通常ジョブスケジューラを介したバッチジョブとして行いますが、ジョブスケジューラが **[Slurm](https://slurm.schedmd.com/)** の場合、 **[PMIx](https://pmix.github.io/)** を使用することでMPIアプリケーションの起動や通信初期化のスケーラビリティを向上させることが可能です。
本テクニカルTipsは、 **PMIx** を使用する **Slurm** 環境での利用を前提とする **OpenMPI** 構築方法を解説します。
また **[UCX](https://openucx.org/)** は、 **OpenMPI****[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** を利用して高帯域・低遅延のMPIプロセス間通信を実現するために欠かせない通信フレームワークです。
本テクニカルTipsは、 **PMIx** を使用する **Slurm** 環境で通信フレームワークに **UCX** の使用を前提とする **OpenMPI** 構築方法を解説します。

- **[Slurmによるリソース管理・ジョブ管理システム構築方法](/ocitutorials/hpc/tech-knowhow/setup-slurm-cluster/)**

Expand Down
6 changes: 1 addition & 5 deletions tutorials/_hpc/benchmark/bios-setting.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
---
title: "パフォーマンスに関連するベアメタルインスタンスのBIOS設定方法"
excerpt: "OCIのベアメタルインスタンスは、デプロイする際にBIOSの設定を指定することが可能です。これらの設定は、NPS(NUMA nodes per socket)やSMT(Simultanious Multi Threading)といった、当該インスタンスの性能に影響するものが少なくありません。本パフォーマンス関連Tipsは、これらのBIOS設定を指定してHPC/GPUクラスタを構築する方法を解説します。"
excerpt: "ベアメタルインスタンスは、デプロイする際にBIOSの設定を指定することが可能です。これらの設定は、NPS(NUMA nodes per socket)やSMT(Simultanious Multi Threading)といった、当該インスタンスの性能に影響するものが少なくありません。本パフォーマンス関連Tipsは、これらのBIOS設定を指定してHPC/GPUクラスタを構築する方法を解説します。"
order: "221"
layout: single
header:
overlay_filter: rgba(34, 66, 55, 0.7)
#link: https://community.oracle.com/tech/welcome/discussion/4474261/
---

ベアメタルインスタンスは、デプロイする際にBIOSの設定を指定することが可能です。
これらの設定は、 **NPS**(NUMA nodes per socket)や **SMT**(Simultanious Multi Threading)といった、当該インスタンスの性能に影響するものが少なくありません。
本パフォーマンス関連Tipsは、これらのBIOS設定を指定してHPC/GPUクラスタを構築する方法を解説します。

***
# 0. 概要

Expand Down
12 changes: 6 additions & 6 deletions tutorials/_hpc/benchmark/run-imb.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ header:

## 1-1. OpenMPIインストール

**[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)****[Slurm環境での利用を前提とするOpenMPI構築方法](/ocitutorials/hpc/tech-knowhow/build-openmpi/)** に従い、 **Intel MPI Benchmarks** を実行する全てのノードに **OpenMPI** をインストールします。
**[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)****[Slurm環境での利用を前提とするUCX通信フレームワークベースのOpenMPI構築方法](/ocitutorials/hpc/tech-knowhow/build-openmpi/)** に従い、 **Intel MPI Benchmarks** を実行する全てのノードに **OpenMPI** をインストールします。

## 1-2. Intel MPI Benchmarksインストール

Expand All @@ -59,9 +59,9 @@ header:
```sh
$ cd ~; wget https://github.com/intel/mpi-benchmarks/archive/refs/tags/IMB-v2021.7.tar.gz
$ tar -xvf ./IMB-v2021.7.tar.gz
$ cd mpi-benchmarks-IMB-v2021.7; export CXX=/opt/openmpi-5.0.3/bin/mpicxx; export CC=/opt/openmpi-5.0.3/bin/mpicc; make -j 36 all
$ sudo mkdir -p /opt/openmpi-5.0.3/tests/imb
$ sudo cp ./IMB* /opt/openmpi-5.0.3/tests/imb/
$ cd mpi-benchmarks-IMB-v2021.7; export CXX=/opt/openmpi-5.0.6/bin/mpicxx; export CC=/opt/openmpi-5.0.6/bin/mpicc; make -j 36 all
$ sudo mkdir -p /opt/openmpi-5.0.6/tests/imb
$ sudo cp ./IMB* /opt/openmpi-5.0.6/tests/imb/
```

## 1-3. Intel MPI Benchmarks実行
Expand All @@ -70,7 +70,7 @@ $ sudo cp ./IMB* /opt/openmpi-5.0.3/tests/imb/
ここでは、2ノードを使用したPingPongをメッセージサイズ0バイトと256 MiBで計測し、レイテンシは0バイトメッセージの所要時間(ここでは1.66 usec)、帯域幅は256 MiBメッセージの帯域幅(12,225.03 MB/s)を以ってその結果とします。

```sh
$ mpirun -n 2 -N 1 -hostfile ~/hostlist.txt -x UCX_NET_DEVICES=mlx5_2:1 /opt/openmpi-5.0.3/tests/imb/IMB-MPI1 -msglog 28:28 pingpong
$ mpirun -n 2 -N 1 -hostfile ~/hostlist.txt -x UCX_NET_DEVICES=mlx5_2:1 /opt/openmpi-5.0.6/tests/imb/IMB-MPI1 -msglog 28:28 pingpong
#----------------------------------------------------------------
# Intel(R) MPI Benchmarks 2021.7, MPI-1 part
#----------------------------------------------------------------
Expand Down Expand Up @@ -118,7 +118,7 @@ $
ここでは、4ノード144プロセス(ノードあたり36プロセス)を使用したAllreduceの所要時間をメッセージサイズ256 MiBで計測しています。

```sh
$ mpirun -n 144 -N 36 -hostfile ~/hostlist.txt -x UCX_NET_DEVICES=mlx5_2:1 /opt/openmpi-5.0.3/tests/imb/IMB-MPI1 -msglog 28:28 -npmin 144 allreduce
$ mpirun -n 144 -N 36 -hostfile ~/hostlist.txt -x UCX_NET_DEVICES=mlx5_2:1 /opt/openmpi-5.0.6/tests/imb/IMB-MPI1 -msglog 28:28 -npmin 144 allreduce
#----------------------------------------------------------------
# Intel(R) MPI Benchmarks 2021.7, MPI-1 part
#----------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion tutorials/_hpc/benchmark/stop-unused-service.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ HPCワークロードの高並列実行に於けるスケーラビリティは
ただこの場合、停止しようとするサービスは、以下の観点で事前に精査する必要があります。

- 使用するリソースがどの程度か
- 提供する機能が不要かどうか
- 提供する機能が不要か

これらの調査を経て停止するサービスを特定したら、対象のサービスを停止し、HPCワークロードを実行します。

Expand Down
2 changes: 1 addition & 1 deletion tutorials/_hpc/spinup-cluster-network.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ header:

なおこの **仮想クラウド・ネットワーク** は、既存のものを使用することが可能です。
ただしこの場合、計算ノードが接続するサブネットは、 **[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** 接続に使用する **[Oracle Cloud Agent](https://docs.oracle.com/ja-jp/iaas/Content/Compute/Tasks/manage-plugins.htm)** HPCプラグインの動作条件を満たしている必要があります。
この詳細は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)****[クラスタネットワーキングイメージを使ったクラスタ・ネットワーク接続方法](/ocitutorials/hpc/tech-knowhow/howto-connect-clusternetwork/)****[1-2. 接続サブネットのOCA HPCプラグイン動作条件充足確認](/ocitutorials/hpc/tech-knowhow/howto-connect-clusternetwork/#1-2-接続サブネットのoca-hpcプラグイン動作条件充足確認)** を参照してください。
この詳細は、 **[OCI HPCテクニカルTips集](/ocitutorials/hpc/#3-oci-hpcテクニカルtips集)****[クラスタネットワーキングイメージを使ったクラスタ・ネットワーク接続方法](/ocitutorials/hpc/tech-knowhow/howto-connect-clusternetwork/)****[1-2. 接続サブネットの動作条件充足確認](/ocitutorials/hpc/tech-knowhow/howto-connect-clusternetwork/#1-2-接続サブネットの動作条件充足確認)** を参照してください。

## 1-1. 仮想クラウド・ネットワーク作成

Expand Down
Loading

0 comments on commit a0480d0

Please sign in to comment.