Three-Dimensional Fluid Code
with XcalableMP
Hitoshi Sakagami
Abstract In order to adapt parallel computers to general convenient tools for
computational scientists, a high-level and easy-to-use portable parallel programming paradigm is mandatory. XcalableMP, which is proposed by the XcalableMP
Specification Working Group, is a directive-based language extension for Fortran
and C to easily describe parallelization in programs for distributed memory
parallel computers. The Omni XcalableMP compiler, which is provided as a
reference XcalableMP compiler, is currently implemented as a source-to-source
translator. It converts XcalableMP programs to standard MPI programs, which
can be easily compiled by the native Fortran compiler and executed on most of
parallel computers. A three-dimensional Eulerian fluid code written in Fortran is
parallelized by XcalableMP using two different programming models with the
ordinary domain decomposition method, and its performances are measured on
the K computer. Programs converted by the Omni XcalableMP compiler prevent
native Fortran compiler optimizations and show lower performance than that of
hand-coded MPI programs. Finally almost the same performances are obtained
by using specific compiler options of the native Fortran compiler in the case of a
global-view programming model, but performance degradation is not improved by
specifying any native compiler options when the code is parallelized by a local-view
programming model.
1 Introduction
Computational scientists usually want to concentrate their attention on their essential research. Parallel programming is never an objective for them even if computational powers of parallel computers are necessary to advance their subjects,
and this dilemma is annoying them. In order to adapt the parallel computer from a
H. Sakagami ()
National Institute for Fusion Science, Toki, Japan
e-mail: sakagami.hitoshi@nifs.ac.jp
© The Author(s) 2021
M. Sato (ed.), XcalableMP PGAS Programming Language,
https://doi.org/10.1007/978-981-15-7683-6_6
165
with XcalableMP
Hitoshi Sakagami
Abstract In order to adapt parallel computers to general convenient tools for
computational scientists, a high-level and easy-to-use portable parallel programming paradigm is mandatory. XcalableMP, which is proposed by the XcalableMP
Specification Working Group, is a directive-based language extension for Fortran
and C to easily describe parallelization in programs for distributed memory
parallel computers. The Omni XcalableMP compiler, which is provided as a
reference XcalableMP compiler, is currently implemented as a source-to-source
translator. It converts XcalableMP programs to standard MPI programs, which
can be easily compiled by the native Fortran compiler and executed on most of
parallel computers. A three-dimensional Eulerian fluid code written in Fortran is
parallelized by XcalableMP using two different programming models with the
ordinary domain decomposition method, and its performances are measured on
the K computer. Programs converted by the Omni XcalableMP compiler prevent
native Fortran compiler optimizations and show lower performance than that of
hand-coded MPI programs. Finally almost the same performances are obtained
by using specific compiler options of the native Fortran compiler in the case of a
global-view programming model, but performance degradation is not improved by
specifying any native compiler options when the code is parallelized by a local-view
programming model.
1 Introduction
Computational scientists usually want to concentrate their attention on their essential research. Parallel programming is never an objective for them even if computational powers of parallel computers are necessary to advance their subjects,
and this dilemma is annoying them. In order to adapt the parallel computer from a
H. Sakagami ()
National Institute for Fusion Science, Toki, Japan
e-mail: sakagami.hitoshi@nifs.ac.jp
© The Author(s) 2021
M. Sato (ed.), XcalableMP PGAS Programming Language,
https://doi.org/10.1007/978-981-15-7683-6_6
165
