PARCEL 1.2(2023/1/31)

PARCEL 1.2がリリースされました。

本アップデートでは、以下の点を修正しています。

  • 1. CUDAによるNVIDIA GPU対応.

ダウンロード

ソースコード

download

マニュアル

日本語版

html

英語版

html

ライセンス

オープンソースとし、GNU Lesser General Public License(LGPL)とします。

過去のバージョン

過去のバージョンはこちらから

プログラム開発の目的及び概要

連立一次方程式の行列解法は直接法と反復法に分類されますが、多くの大規模問題では、計 算コストやメモリ使用量の観点からクリロフ部分空間法に基づく反復法が用いられます。 PARallel Computing ELements(PARCEL)ライブラリは、演算加速とそれより相対的に低いノ ード間通信性能という特徴をもっている近年の超並列計算機に適した高効率な並列クリロフ部分空間法ソルバを提供します。 PARCELはMPI+OpenMPによるハイブリッド並列プログラミングモデルに基づいており、従来のクリロフ部分空間法(CG法、BiCGstab法、GMRES法)[1,2]に加えて最新の通信削減型クリロフ部分空間法(チェビシェフ基底CG法[5,6]、通信削減型GMRES法[3,4])を利用可能としています。 通信削減型クリロフ部分空間法では、従来のクリロフ部分空間法では反復毎に必要となっていた集団通信の回数を大幅に削減することで通信処理のボトルネックを回避します。 前処理手法として、従来手法(ポイントヤコビ前処理、ILU前処理、ブロックヤコビ前処理、 加法的シュワルツ前処理)[1,2]に加えて、SIMD処理向けの細分化前処理[7]やGPU処理向けのノイマン展開前処 理[2]を利用可能としています。 また、通信削減型GMRES法用に整備されたQR分解ルーチン(古典グラムシュミット法[1,2]、修 正グラムシュミット法[1,2]、Tall Skinny QR法[3]、コレスキーQR法[8]、コレスキーQR2法[9])および通信削減型アーノルディ法[3]による固有値計算ルーチンを利用可能としています。 PARCELは3つの行列形式(Compressed Row Storage(CRS)形式、Diagonal(DIA)形式、Domain Decomposition Metod(DDM)形式)、2つのデータ型(倍精度、4倍精度)をサポートし、CおよびFortranで書かれたプログラムから利用可能です。

プログラムの性能

≪ BDEC-01/Wisteria-O(A64FX、東京大学)32CPUを利用したブロックヤコビ前処理付き共役勾配法の処理性能比較 ≫
格子サイズ768×768×768の3次元ポアソン方程式

PETSc
CRS
ブロックヤコビ前処理
(all-MPI)

PARCEL
CRS
ブロックヤコビ前処理
(MPI+OpenMP)

PARCEL
CRS
細分化前処理
(MPI+OpenMP)

PARCEL
DDM
細分化前処理
(MPI+OpenMP)

計算時間 [s]

75.08

73.30

36.68

11.31

メモリ使用量 [GB]

382

194

194

166

反復回数

1632

1633

1905

1571

≪ HPE SGI8600(Intel Xeon Gold 6248R、日本原子力研究開発機構)32CPUを利用したブロックヤコビ 前処理付き共役勾配法の処理性能比較 ≫
格子サイズ768×768×768の3次元ポアソン方程式

PETSc
CRS
ブロックヤコビ前処理
(all-MPI)

PARCEL
CRS
ブロックヤコビ前処理
(MPI+OpenMP)

PARCEL
CRS
細分化前処理
(MPI+OpenMP)

PARCEL
DDM
細分化前処理
(MPI+OpenMP)

計算時間 [s]

137.03

125.45

167.97

83.03

メモリ使用量 [GB]

369

158

158

126

反復回数

1437

1438

1903

1536

≪ HPE SGI8600(Intel Xeon Gold 6248R、NVIDIA Tesla V100 SXM2、日本原子力研究開発機構)32GPU を利用した前処理付き共役勾配法の処理性能比較 ≫
格子サイズ768×768×768の3次元ポアソン方程式

PETSc
ブロックヤコビ
前処理
(MPI+CUDA)

AmgX
ヤコビ
前処理
(MPI+CUDA)

PARCEL
CRS
ブロックヤコビ
前処理
(MPI+CUDA)

PARCEL
CRS
ノイマン展開
前処理
(MPI+CUDA)

PARCEL
DDM
ノイマン展開
前処理
(MPI+CUDA)

計算時間 [s]

58.31

9.45

58.25

11.88

7.89

メモリ使用量 [GB]
CPU
GPU


282
222


40
167


191
269


122
269


91
151

反復回数

882

982

883

982

982

参考文献

[1] R. Barret, M. Berry, T. F. Chan, et al., "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods", SIAM(1994)
[2] Y. Saad, "Iterative methods for sparse linear systems", SIAM (2003)
[3] M. Hoemmen, "Communication-avoiding Krylov subspace methods". Ph.D.thesis, University of California, Berkeley(2010)
[4] Y. Idomura, T. Ina, A. Mayumi, et al., "Application of a communication-avoiding generalized minimal residual method to a gyrokinetic five dimensional eulerian code on many core platforms",ScalA 17:8th Workshop on Latest Advances in Scalable Algorithms for Large Scale Systems, pp.1-8, (2017).
[5] R. Suda, L. Cong, D. Watanabe, et al., "Communication-Avoiding CG Method: New Direction of Krylov Subspace Methods towards Exa-scale Computing", RIMS Kokyuroku ,pp. 102-111, (2016).
[6] Y. Idomura, T. Ina, S. Yamashita, et al., "Communication avoiding multigrid preconditioned conjugate gradient method for extreme scale multiphase CFD simulations". ScalA 18:9th Workshop on Latest Advances in Scalable Algorithms for Large Scale Systems,pp. 17-24.(2018)
[7] T. Ina, Y. Idomura , T. Imamura, S.Yamashita, and N. Onodera, "Iterative methods with mixed-precision preconditioning for ill-conditioned linear systems in multiphase CFD simulations", ScalA21:12th Workshop on Latest Advances in Scalable Algorithms for Large Scale Systems .(2021)
[8] A. Stathopoulos, K. Wu, "A block orthogonalization procedure with constant synchronization requirements". SIAM J. Sci. Comput. 23, 2165?2182 (2002)
[9] T. Fukaya, Y. Nakatsukasa, Y. Yanagisawa, et al., "CholeskyQR2: A Simple and Communication-Avoiding Algorithm for Computing a Tall-Skinny QR Factorization on a Large-Scale Parallel System," ScalA 14:5th Workshop on Latest Advances in Scalable Algorithms for Large Scale Systems, pp. 31-38,(2014)

開発者

日本原子力研究開発機構 システム計算科学センター 高度計算機技術開発室

連絡先

ccse-quad(at)ml.jaea.go.jp
※ (at) は @ に置き換えて下さい。