XcalableMP Programming Model
and Language
Hitoshi Murai, Masahiro Nakao, and Mitsuhisa Sato
Abstract XcalableMP (XMP) is a directive-based language extension of Fortran
and C for distributed-memory parallel computers, and can be classified as a partitioned global address space (PGAS) language. One of the remarkable characteristics
of XMP is that it supports both global-view and local-view parallel programming.
This chapter describes the programming model and language specification of XMP.
1 Introduction
Distributed-memory systems are generally used for large-scale simulations. To program such systems, Message Passing Interface (MPI) is widely adopted. However,
programming with MPI is difficult because programmers must describe interprocess communications with consideration of the execution flow of their programs,
which might cause deadlocks or wrong results.
To address this issue, a parallel language named High Performance Fortran (HPF)
was proposed in 1991. With HPF, programmers can execute their serial programs in
parallel by inserting minimal directives into them. If the programmers specify data
distribution with HPF directives, the compilers do all other tasks for parallelization
(e.g. communication generation and work distribution). However, HPF was not
widely accepted eventually because the compilers’ automatic processing prevents
the programmers from performance tuning, and the performance depends heavily
on the environment (e.g. compiler and hardware)
Note For more details, please refer: Ken Kennedy, Charles Koelbel and Hans Zima:
The Rise and Fall of High Performance Fortran: An Historical Object Lesson, Proc.
3rd ACM SIGPLAN History of Programming Languages Conf. (HOPL-III), pp. 71–7-22 (2007).
H. Murai () · M. Nakao · M. Sato
RIKEN Center for Computational Science, Kobe, Hyogo, Japan
e-mail: h-murai@riken.jp; masahiro.nakao@riken.jp; msato@riken.jp
© The Author(s) 2021
M. Sato (ed.), XcalableMP PGAS Programming Language,
https://doi.org/10.1007/978-981-15-7683-6_1
1
and Language
Hitoshi Murai, Masahiro Nakao, and Mitsuhisa Sato
Abstract XcalableMP (XMP) is a directive-based language extension of Fortran
and C for distributed-memory parallel computers, and can be classified as a partitioned global address space (PGAS) language. One of the remarkable characteristics
of XMP is that it supports both global-view and local-view parallel programming.
This chapter describes the programming model and language specification of XMP.
1 Introduction
Distributed-memory systems are generally used for large-scale simulations. To program such systems, Message Passing Interface (MPI) is widely adopted. However,
programming with MPI is difficult because programmers must describe interprocess communications with consideration of the execution flow of their programs,
which might cause deadlocks or wrong results.
To address this issue, a parallel language named High Performance Fortran (HPF)
was proposed in 1991. With HPF, programmers can execute their serial programs in
parallel by inserting minimal directives into them. If the programmers specify data
distribution with HPF directives, the compilers do all other tasks for parallelization
(e.g. communication generation and work distribution). However, HPF was not
widely accepted eventually because the compilers’ automatic processing prevents
the programmers from performance tuning, and the performance depends heavily
on the environment (e.g. compiler and hardware)
Note For more details, please refer: Ken Kennedy, Charles Koelbel and Hans Zima:
The Rise and Fall of High Performance Fortran: An Historical Object Lesson, Proc.
3rd ACM SIGPLAN History of Programming Languages Conf. (HOPL-III), pp. 71–7-22 (2007).
H. Murai () · M. Nakao · M. Sato
RIKEN Center for Computational Science, Kobe, Hyogo, Japan
e-mail: h-murai@riken.jp; masahiro.nakao@riken.jp; msato@riken.jp
© The Author(s) 2021
M. Sato (ed.), XcalableMP PGAS Programming Language,
https://doi.org/10.1007/978-981-15-7683-6_1
1
