Preface
XcalableMP is a directive-based parallel programming language based on Fortran
and C, supporting the PGAS (partitioned global address space) model for distributed
memory parallel systems. PGAS is a programming model related to distributed
memory system with a shared address space that distinguishes between local (cheap)
and remote (expensive) memory access. It provides an easy and intuitive programming model to describe remote data access. PGAS is an emerging programming
model for exascale computing.
The XcalableMP project has been started in 2008 as a part of MEXT e-science
project, led by Prof. Yutaka Ishikawa, University of Tokyo, Japan. The language
specification working group were organized by Mitsuhisa Sato, University of
Tsukuba, with members from academia, government laboratories, and industries,
who are interested in parallel programming languages. In 2011, version 1.0 of
XcalableMP was published. Since 2011, after the e-science project was ended, the
specification working group has been managed under the PC Cluster Consortium,
Japan. At the same time, the Omni XcalableMP compiler has been developed as
a production-level reference implementation of XcalableMP compiler for C and
Fortran 2008 by RIKEN CCS and University of Tsukuba.
The XcalableMP project has taken an evolutional approach with the following
strategies:
• We focus on migration from existing codes: To facilitate the migration, we
took the directive-based approach to enable parallelization by adding directives/pragma in the global view programming. As a local view programming,
the coarray feature was supported to replace the MPI communication for the
migration from the MPI.
• Learn from the past: In the past, the Japanese HPC language community had a
lot of experience on High-Performance Fortran. This experience provided useful
insights for the design of the global view programming model.
• Specification designed by community: Programming languages should be shared
by many programmers. For the design of the language specification, the specification working group has been organized to collect the idea from the community.
v
XcalableMP is a directive-based parallel programming language based on Fortran
and C, supporting the PGAS (partitioned global address space) model for distributed
memory parallel systems. PGAS is a programming model related to distributed
memory system with a shared address space that distinguishes between local (cheap)
and remote (expensive) memory access. It provides an easy and intuitive programming model to describe remote data access. PGAS is an emerging programming
model for exascale computing.
The XcalableMP project has been started in 2008 as a part of MEXT e-science
project, led by Prof. Yutaka Ishikawa, University of Tokyo, Japan. The language
specification working group were organized by Mitsuhisa Sato, University of
Tsukuba, with members from academia, government laboratories, and industries,
who are interested in parallel programming languages. In 2011, version 1.0 of
XcalableMP was published. Since 2011, after the e-science project was ended, the
specification working group has been managed under the PC Cluster Consortium,
Japan. At the same time, the Omni XcalableMP compiler has been developed as
a production-level reference implementation of XcalableMP compiler for C and
Fortran 2008 by RIKEN CCS and University of Tsukuba.
The XcalableMP project has taken an evolutional approach with the following
strategies:
• We focus on migration from existing codes: To facilitate the migration, we
took the directive-based approach to enable parallelization by adding directives/pragma in the global view programming. As a local view programming,
the coarray feature was supported to replace the MPI communication for the
migration from the MPI.
• Learn from the past: In the past, the Japanese HPC language community had a
lot of experience on High-Performance Fortran. This experience provided useful
insights for the design of the global view programming model.
• Specification designed by community: Programming languages should be shared
by many programmers. For the design of the language specification, the specification working group has been organized to collect the idea from the community.
v
