Julia 言語によるマルチプラットフォーム対応 分散混相流ソルバ LCS.jl の開発
概要を表示
近年,高性能計算分野 (high performance computing; HPC) では,CPU に加えて GPU を搭載したスーパーコンピュータが主流になりつつある.これに伴い,CPU 環境を前提として最適化されてきた HPC コードを,GPU 環境へ移植する必要性が高まっている.このような移植では,いまだ広く利用される CPU 環境への対応を維持しつつ,多様なベンダーの GPU 環境にも対応できる性能可搬性が求められる.さらに,GPU の性能を引き出すため,メモリ階層や並列実行を考慮したアルゴリズムの再設計が必要となる.性能可搬性と高性能を両立する HPC コード開発手法の確立は,依然として重要な課題である.
そこで,我々は,Julia 言語と KernelAbstractions.jl を用いて,単一のソースコードを CPU/GPU 上で実行可能な single-source,multi-platform design に基づく混相乱流計算ソルバー Lagrangian Cloud Simulator in Julia (LCS.jl) を開発した.LCS.jl では,従来の CPU 向け逐次粒子通信アルゴリズムを,prefix-scan に基づく GPU-native な並列アルゴリズムへと再設計した.これにより,粒子通信コストを全実行時間の約 78% から約 10% まで削減した.さらに LCS.jl は,Fortran 実装と同等の CPU 性能,および 256 H100 GPUs まで 85% 以上の strong scaling 効率を達成した.GPU 計算では,CPU 計算に対して最大 18.0 倍の高速化を達成した.
本講演では,これらの学術的成果に加えて,LCS.jl の開発を通じて得られた Julia 言語による HPC コードの設計手法についても紹介する.Julia 言語を用いることで,C/Fortran に匹敵する実行性能を目指しつつ,高水準な言語機能を活かした抽象化により,実行環境や機能の違いを局所化した拡張可能なコードを高い生産性で開発できる.さらに,ドキュメント生成,テスト,ベンチマークを開発過程に組み込むことで,HPC コードの堅牢性と保守性を高められる.これらを通じて,性能可搬性,高性能,高生産性を同時に追求する HPC コード開発手法について議論する.
参考文献
- Taketo Tominaga and Ryo Onishi, LCS.jl: A High-Performance, Multi-Platform Computational Model in Julia for Turbulent Particle-Laden Flows, arXiv:2604.11008 (2026).
- Taketo Tominaga and Ryo Onishi, Finite-Time Relaxation of Inertial Particle Clustering in Non-Equilibrium Turbulence, arXiv:2605.25539 (2026).
