Mixed-Language Programming
with XcalableMP
Masahiro Nakao
Abstract This chapter presents the mixed-language programming with XcalableMP and other programming languages. It is supported by the linkage functions
between XcalableMP and MPI library. We also demonstrate how to call XcalableMP
program from Python program (M. Nakao et al., Linkage of XcalableMP and Python
languages for high productivity on HPC cluster system, Proceedings of Workshops
of HPC Asia, No .9, pp.39–47, 2018).
1 Background
To develop applications on high-performance computing (HPC) cluster systems,
Partitioned Global Address Space (PGAS) languages that can demonstrate high
productivity are used [2–5]. Because the use of PGAS languages is familiar in
one-sided communication, applications in PGAS languages can sometimes exhibit
higher performance than those using MPI library by directly using a communication
layer close to hardware [5, 6]. Examples of PGAS languages include XcalableMP
(XMP) [5, 7, 8]; XcalableACC [9–11]; Coarray Fortran [12], PCJ [13], Unified
Parallel C, 1 UPC++ [14], HabaneroUPC++ [15], X10 [16], Chapel [17], and
DASH [18].
Although PGAS languages have many advantages, re-implementing an existing
MPI application using a PGAS language is often not realistic for the following
reasons: (1) since the number of lines of a real-world application code may reach
several million, the programming cost for re-implementing is excessive, and (2)
cases where productivity and performance have been improved by PGAS languages
are limited. Moreover, since each programming language generally has its own
1 https://upc-lang.org/assets/Uploads/spec/upc-lang-spec-1.3.pdf
M. Nakao ()
RIKEN Center for Computational Science, Kobe, Hyogo, Japan
e-mail: masahiro.nakao@riken.jp
© The Author(s) 2021
M. Sato (ed.), XcalableMP PGAS Programming Language,
https://doi.org/10.1007/978-981-15-7683-6_5
147
Précédent

- 154/265

Suivant