PARCEL_SYCL_v1.0

ダウンロード

ソースコード

download

マニュアル

日本語版

html

英語版

html

ライセンス

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

過去のバージョン

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

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

現在の計算環境では、CPU に加え、GPU、FPGA、AI アクセラレータなど、さまざまな種類のハードウェアが活用されています。これらのデバイスは、それぞれ異なるプログラミングモデル(CUDA、OpenCL など)を必要とするため、個別に開発を行う必要があり、プログラムの移植性や保守性に課題があります。このような課題を解決するため、Khronos Group によって策定されたオープンな標準規格 SYCL が登場しました。SYCL は C++ をベースとしており、CPU や GPU をはじめとする異種計算プラットフォーム上での並列プログラミングを単一ソースで実現できます。
PARallel Computing ELements(PARCEL) ライブラリは、演算性能に優れる一方でノード間通信性能が相対的に低い並列計算機に適した並列クリロフ部分空間法ソルバーを提供するライブラリです。
これまで、PARCEL は CPU および NVIDIA GPU 向けのバージョンがそれぞれ独立に開発されてきましたが、これを SYCL によって再実装することで、性能可搬性とプログラムの保守性を高めるとが可能となります。現バージョンは Intel/AMD/Arm CPU および NVIDIA GPU のみで動作確認が行われていますが、将来的には AMD や Intel の GPU、さらに FPGA などへの対応も行っていく予定です。 さらに、ハードウェアごとに演算性能や特性が異なるため、半精度、単精度、倍精度、四倍精度といった適切な精度の選択が重要です。SYCL版PARCEL は計算アルゴリズムやデータ型に応じて異なる精度を柔軟に組み合わせて使用できるハイブリッド混合精度処理をサポートしており、これにより演算精度を維持しつつ、メモリアクセスのコストを最小化した高速かつ数値的に安定なソルバーを実現しています。

プログラムの性能

前処理無し共役勾配法の処理性能比較
格子サイズ240×240×240の3次元ポアソン方程式

Intel Xeon Gold 6248R

FUJITSU Processor A64FX

NVIDIA A100

Fortran,CUDA
[s]

3.50

1.39

0.32

SYCL
[s]

4.70

1.77

0.32

参考文献

[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) は @ に置き換えて下さい。