Skip to content

Commit

Permalink
Merge branch 'develop' of https://github.com/oracle-japan/ocitutorials
Browse files Browse the repository at this point in the history
…into develop
  • Loading branch information
yohono committed May 31, 2024
2 parents bc56389 + 7377d40 commit 06ac833
Show file tree
Hide file tree
Showing 8 changed files with 314 additions and 12 deletions.
6 changes: 6 additions & 0 deletions _pages/hpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,12 @@ HPC/機械学習ワークロードを実行する際に有益なテクニカル
これらの演算は、ソースコードを自作することで対応することも出来ますが、オープンソースで配布されている線形代数演算ライブラリである **[BLAS](https://www.netlib.org/blas/)****[OpenBLAS](https://github.com/OpenMathLib/OpenBLAS/wiki)** を利用することで、開発工数の削減、保証された計算精度、高速な演算の実行等、様々なメリットを享受することが可能です。
本テクニカルTipsは、BLASとOpenBLASをHPCワークロードの実行に最適なベアメタルインスタンスにインストールし、Fortranのサンプルコードからこれを利用する方法を解説します。

- **[OpenFOAMインストール・利用方法](/ocitutorials/hpc/tech-knowhow/install-openfoam/)**

**[OpenFOAM](https://www.openfoam.com/)** は、CAE分野で多くの利用実績を持つオープンソースのCFDアプリケーションです。
**OpenFOAM** は、メッシュ作成等のプリ処理、ソルバーによる解析処理、及び解析結果を可視化するポスト処理の全てのCFD解析フローを、自身が提供するツール群と外部のツール群を組合せてオープンソースソフトウェアで完結することが可能です。また **OpenFOAM** が提供するソルバーは、MPIで並列化されており、1万コアを超える並列実行の実績も報告されています。
本テクニカルTipsは、 **OpenFOAM** とこれを中核とするCFD解析フローに有用なオープンソースのツール群を、HPCワークロードの実行に最適なベアメタルインスタンスにインストールし、これを利用する方法を解説します。

## 3-6. その他

- **[ベアメタル・インスタンスのカーネルダンプ取得方法](/ocitutorials/hpc/tech-knowhow/kdump-on-baremetal/)**
Expand Down
12 changes: 5 additions & 7 deletions tutorials/_hpc/tech-knowhow/build-openmpi.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,12 @@ header:
#link: https://community.oracle.com/tech/welcome/discussion/4474261/
---

**[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** 構築方法を解説します。

***
# 0. 概要

**Slurm** 環境で **OpenMPI** のアプリケーションを実行する場合、その動作モードには以下の選択肢があります。
**[Slurm](https://slurm.schedmd.com/)** 環境で **[OpenMPI](https://www.open-mpi.org/)** のアプリケーションを実行する場合、その動作モードには以下の選択肢があります。

1. 計算リソースの確保、アプリケーション起動、及び **PMIx** を介したプロセス間通信の初期化処理を全て **Slurm** が行う。
1. 計算リソースの確保、アプリケーション起動、及び **[PMIx](https://pmix.github.io/)** を介したプロセス間通信の初期化処理を全て **Slurm** が行う。
2. 計算リソースの確保を **Slurm** が行い、アプリケーション起動はSSHを介して起動される **OpenMPI** のprtedが行う。

ここで1.の動作モードは、2.に対して以下の利点があります。
Expand All @@ -34,10 +30,12 @@ header:

各ソフトウェアは、以下のバージョンを前提とします。

- OS : **Oracle Linux** 8.9ベースのHPC **[クラスタネットワーキングイメージ](/ocitutorials/hpc/#5-13-クラスタネットワーキングイメージ)**
- OS : **Oracle Linux** 8.9ベースのHPC **[クラスタネットワーキングイメージ](/ocitutorials/hpc/#5-13-クラスタネットワーキングイメージ)** (※1)
- MPI : **OpenMPI** 5.0.3
- PMIx : **[OpenPMIx](https://openpmix.github.io/)** 5.0.2

※1)**[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.1** です。

またこれらをインストールするインスタンスは、**[クラスタ・ネットワーク](/ocitutorials/hpc/#5-1-クラスタネットワーク)** に接続する **[BM.Optimized3.36](https://docs.oracle.com/ja-jp/iaas/Content/Compute/References/computeshapes.htm#bm-hpc-optimized)** を前提とし、稼働確認を行うために少なくとも2ノード用意します。
この構築手順は、 **[OCI HPCチュートリアル集](/ocitutorials/hpc/#1-oci-hpcチュートリアル集)****[HPCクラスタを構築する(基礎インフラ手動構築編)](/ocitutorials/hpc/spinup-cluster-network/)** が参考になります。

Expand Down
Loading

0 comments on commit 06ac833

Please sign in to comment.