スーパーコンピュータ「富岳」のソフトウェア環境
理化学研究所 計算科学研究センター (R-CCS)
運⽤技術部⾨ ソフトウェア開発技術ユニット
村井 均

2022/12/5

PCCC221はじめに• スーパーコンピュータ「富岳」• 2021年4⽉に共⽤開始。
• 主な成果:• 2021年 ゴードン・ベル賞 COVID-19研究特別賞• 2022年 ゴードン・ベル賞• 現在、Top500第2位、HPCG1位、HPL-AI第3位、Graph500第1位• ソフトウェア開発技術ユニットのミッション:• 富岳のソフトウェア環境の⾼度化• プログラミング環境• チューニング技術• オープンソース & 商⽤ソフトウェア• etc.

• 上記に関するユーザサポート
2022/12/5

PCCC222

アジェンダ• 富岳のプログラミング環境• AIフレームワーク• オープンソースソフトウェア (OSS)• 商⽤ソフトウェア• Continuous Benchmarking

2022/12/5

PCCC223

富岳のプログラミング環境• ベンダ製 (富⼠通) プログラミング環境• Fortran 2008
• C11• C++14 & C++17サブセット• OpenMP 3.1 & 4.0/4.5/5.0サブセット• MPI 3.1 & MPI 4.0サブセット• 数学ライブラリ: SSL2
• 性能プロファイラ• 基本プロファイラ• 詳細プロファイラ• CPU性能解析レポート

機能不⾜や性能の問題が報告されており、主にOSSを⽤いた強化や拡張を進めている。

• デバッガ2022/12/5

PCCC224

コンパイラの強化• ベンダ製コンパイラ (特にC++) の性能について、いくつかの問題が報告されている。
• ベンダと共同でA64FX向け Clang/LLVM コンパイラを開発中。
• 2022年度• 最新版のClang/LLVM※をベースに、A64FX向けソフトウェアパイプライニング (SWPL) 機能 (MachinePipeliner) を実装中。

※ LLVM 14以降はSVEをサポート済み。

• ループ正規化• 繰り返し型モジュロスケジューリング
• レジスタ割付け• 2023年度以降• ベクトル化機能の強化• SWPLのためのループ融合/分割• LLVM本体へのアップストリームを⽬指す。
2022/12/5

PCCC225

ツールの強化 (⼀部)
• Score-P/Scalasca (JSC)• オープンソースの性能プロファイラ。
• ポーティング中。

• TAU (U. Oregon)• オープンソースの性能プロファイラ。
• ポーティング完、公開準備中。

• VeloC (ANL)• オープンソースのチェックポインティングツール。
• 公開中。

• Arm DDT

• GUIデバッガ。
• 動作確認済み。
2022/12/5

PCCC226

AI framework
We installed the AI frameworks, TensorFlow, PyTorch on the Fugaku. In addition, the latest
version is released on the GitHub and can be used. These AI frameworks use the customizedlibraries for the Fugaku.
l Taskl

Fugaku does not have GPUs, so the libraries made forGPUs cannot be used.
ll

In order to take advantage of the Fugaku, the key ismassive parallelization on the many CPUs.
llll

It is necessary to release more documentations such as construction andusage of training examples, and so on, from the user perspective on theFugaku.

The data parallelism has a problem with convergence.
The model parallelism requires to develop the codes for each training.
The collaboration of trainings and simulations by workflow will be a key inthe future use.

The user uses various versions of AI framework for eachtraining. In order to respond to this problems, thefollowing environment is being prepared.
llVersion control by Spack including related many python modules
Providing container environments

Fig. GitHub of AI Frameworks for A64fx systems

富岳におけるOSS• 基本⽅針:• 広く⽤いられているOSSを中⼼に提供する (ユーザからの要望に基づく)。
• 必要に応じて、各ユーザも⾃⾝でOSSをインストールできる。
• Spack (⽶Exascale Computing Project (ECP) が開発するHPC向けソフトウェア管理ツール) を⽤いる。

• サポート⽅針: ベストエフォート• 原則として、個別のOSSのサポートは⾏わない。
• as-isによる提供 (⼀部の重要パッケージ (e.g. FFTW) は、最適化済み)。
• とはいえ、要望次第で対応。

2022/12/5

PCCC228

Spack (1)• 特徴:• 「レシピ」に基づく、半⾃動的な処理。
• 6700以上のOSSのレシピが公開済み (最新 v0.19)。
• 富岳 (A64FX) 対応状況: https://spack-mirror.r-ccs.riken.jp/oss/public/• ソフトウェア間の依存関係を適切に処理。
• 複数のvariant (バージョン、コンパイラ種別、ライブラリ種別……) を共存可能。

github.com/spack/spack

2022/12/5

PCCC229

Spack (2)パブリックインスタンスのパッ
ケージを利⽤する場合(通常の使い⽅)• 基本的な使い⽅:$ git clone git@github.com:spack/spack.git// Spackをインストール$ . spack/share/spack/setup-env.sh// 環境設定

$ spack install openblas// パッケージopenblasをインストール$ spack load openblas// パッケージopenblasをロード• 「システムSpack (パブリックインスタンス)」 + 「ユーザSpack (プライベートインスタンス)」• 重要度が⾼い / ⼀般的な / 広く使われているOSSは前者によりR-CCSが提供。
• 各ユーザは、個別のOSSを後者でインストールできる。
• 両者は、Spackの「chain」機能により連携できる。

2022/12/5

PCCC2210

提供済みOSSのリスト (計算ノード)
名称
adios2alps
bcftools
bedtools2
blitz
boost
bwa
cblas
cmake
dssp
eigenexa
fujitsu-fftw
fujitsu-mpi
fujitsu-ssl2
gcc
genesisgrads
gromacs
hdf5
htslibjulia
kokkoslammps
lis
llvm

バージョン
2.6.0
2.3.0
1.10.22.27.1
1.0.1
1.74.00.7.17
2015-06-06
3.18.4
3.1.4
2.6
master
4.6.1
4.6.1
10.2.01.5.1
2.2.1
2020.6 / 2021.3
1.10.71.10.2
1.5.2
3.1.0120201029
2.0.2712.0.1

名称
mapslice2
mesa
metis
mpich-tofu
mptensor
n2p2
netcdf-c
netcdf-cxx
netcdf-cxx4
netcdf-fortrannetlib-lapack
netlib-scalapack
openblas
openfoam
openfoam-org
openjdkparallel-netcdf
paraview
parmetis
petsc
pfapack
picardpovrayprocess-in-process
py-ase2022/12/5

バージョン
2.2.1
20.2.15.1.0
master
0.3.0
2.1.1
4.7.4
4.2
4.3.1
4.5.3
3.8.0
2.1.0
0.3.12
2012 / 2106
811.0.0-2020-01-01
1.12.1
5.8.1
4.0.3
3.14.1
2014-09-17
2.20.83.7.0.8
2&3
3.18.0

名称
py-daskpy-h5py
py-jupyterhub
py-keras
py-mpi4py
py-netcdf4
py-numpy
py-pydmd
py-pygps
py-pysampy-scikit-learn
py-scipy
py-seaborn
py-xarray
pythonquantum-espresso
r
raja
rdkit
samtools
scale
scotchscreen
star
tmux
xios

PCCC22バージョン
2.16.02.10.0
1.0.0
2.2.4
3.0.3
1.5.31.19.4
0.3
1.3.5
0.15.20.23.2
1.6.1
0.9.0
0.14.0
3.8.6
6.5 / 6.6 / 6.7
4.0.3
0.12.1
2021_03_2
1.10
5.4.3
6.1.0
4.8.0
2.7.6a3.1b2.5• 実際には、これらが依存する多数のOSSもインストール済み。
• 動作は未検証。
• ログインノード、プリポストノードでも利⽤可能。
• 今後も、順次に拡充していく。

11

商⽤ソフトウェア※ https://www.fujitsu.com/downloads/JP/jsuper/
Applications-for-PRIMEHPC-ja.pdf• 3種類の利⽤⽅式
A) サイトライセンス⽅式• R-CCSが保有するライセンスにより、条件を満たしたユーザは無償で利⽤可能。
• R-CCSによるサポートあり。
• 2022年11⽉22⽇よりGaussian 16の提供を開始。

B) 持ち込みライセンス⽅式• R-CCSがソフトウェアのインストールを⾏い、ユーザが保有するライセンスを登録して利⽤。
• R-CCSによるサポートあり。
• 近⽇中に、scFLOW、CONVERGE、LS-DYNA、Poyntingの提供を開始する予定。

C) 個別インストール⽅式• Ansys Fluentなど多数が富岳で実証済み※ → ベンダ (富⼠通) へお問い合わせください。

• 上記のソフトウェアの「試⽤」も計画中。
2022/12/5

PCCC2212

Continuous Benchmarking (CB)• 背景:
• GitLabによるCI/CDの動作を富岳で実証済み。
• 富岳の安定的運⽤のために、継続的/⾃動的な性能評価 (ベンチマーキング) が有⽤。
• 次期スーパーコンピュータの調査研究でも活⽤できる︖• ⽬的:• ベンチマークセットの定義• CBフレームワークの開発• Spackの CI Pilelines 機能と回帰テストツール ReFrame に基づくプロトタイプを検討中。

• (結果の公開) ー 富岳以外のマシンにも広めたい (HPCIや海外のいくつかのサイトとの共同研究を遂⾏中)。
• etc.

2022/12/5

PCCC2213

おわりに• 富岳のプログラミング環境の強化• A64FX向けLLVM/Clangを開発中。
• (LLVMに詳しい⽅、求む︕)• ツールのポーティング。
• 最適化済みのAIフレームワークを提供。

• Spackを⽤いてOSSを提供。
• (HPCシステムの管理者の⽅、Spackを使ってみませんか︖)• Gaussianを始めとする商⽤ソフトウェアの提供を開始。
• Continuous Benchmarkingを計画中。
• (HPCにおけるCI/CD/CBの活⽤について関⼼をお持ちの⽅、⼀緒に何かやりませんか︖)
2022/12/5

PCCC2214