XcalableACC: An Integration
of XcalableMP and OpenACC
Akihiro Tabuchi, Hitoshi Murai, Masahiro Nakao, Tetsuya Odajima,
and Taisuke Boku
Abstract XcalableACC (XACC) is an extension of XcalableMP for accelerated
clusters. It is defined as a diagonal integration of XcalableMP and OpenACC, which
is another directive-based language designed to program heterogeneous CPU/accelerator systems. XACC has features for handling distributed-memory parallelism,
inherited from XMP, offloading tasks to accelerators, inherited from OpenACC, and
two additional functions: data/work mapping among multiple accelerators and direct
communication between accelerators.
1 Introduction
This chapter describes the specification of XACC (XACC) which is an extension
of XMP version 1.3 [2] and OpenACC version 2.5 [3]. XACC provides a parallel
programming model for accelerated clusters which are distributed memory systems
equipped with accelerators.
In this chapter, terminologies of XMP and OpenACC are indicated by bold font.
For details, refer to each specification [2, 3].
The work on XACC and the Omni XcalableACC compiler was supported by the
Japan Science and Technology Agency, Core Research for Evolutional Science and
Technology program entitled “Research and Development on Unified Environment
of Accelerated Computing and Interconnection for Post-Petascale Era” in the
A. Tabuchi
Fujitsu Laboratories Ltd., Kawasaki, Kanagawa, Japan
H. Murai · M. Nakao () · T. Odajima
RIKEN Center for Computational Science, Kobe, Hyogo, Japan
e-mail: h-murai@riken.jp; masahiro.nakao@riken.jp; tetsuya.odajima@riken.jp
T. Boku
Center for Computationl Sciences, University of Tsukuba, Tsukuba, Ibaraki, Japan
e-mail: taisuke@ccs.tsukuba.ac.jp
© The Author(s) 2021
M. Sato (ed.), XcalableMP PGAS Programming Language,
https://doi.org/10.1007/978-981-15-7683-6_4
123
of XcalableMP and OpenACC
Akihiro Tabuchi, Hitoshi Murai, Masahiro Nakao, Tetsuya Odajima,
and Taisuke Boku
Abstract XcalableACC (XACC) is an extension of XcalableMP for accelerated
clusters. It is defined as a diagonal integration of XcalableMP and OpenACC, which
is another directive-based language designed to program heterogeneous CPU/accelerator systems. XACC has features for handling distributed-memory parallelism,
inherited from XMP, offloading tasks to accelerators, inherited from OpenACC, and
two additional functions: data/work mapping among multiple accelerators and direct
communication between accelerators.
1 Introduction
This chapter describes the specification of XACC (XACC) which is an extension
of XMP version 1.3 [2] and OpenACC version 2.5 [3]. XACC provides a parallel
programming model for accelerated clusters which are distributed memory systems
equipped with accelerators.
In this chapter, terminologies of XMP and OpenACC are indicated by bold font.
For details, refer to each specification [2, 3].
The work on XACC and the Omni XcalableACC compiler was supported by the
Japan Science and Technology Agency, Core Research for Evolutional Science and
Technology program entitled “Research and Development on Unified Environment
of Accelerated Computing and Interconnection for Post-Petascale Era” in the
A. Tabuchi
Fujitsu Laboratories Ltd., Kawasaki, Kanagawa, Japan
H. Murai · M. Nakao () · T. Odajima
RIKEN Center for Computational Science, Kobe, Hyogo, Japan
e-mail: h-murai@riken.jp; masahiro.nakao@riken.jp; tetsuya.odajima@riken.jp
T. Boku
Center for Computationl Sciences, University of Tsukuba, Tsukuba, Ibaraki, Japan
e-mail: taisuke@ccs.tsukuba.ac.jp
© The Author(s) 2021
M. Sato (ed.), XcalableMP PGAS Programming Language,
https://doi.org/10.1007/978-981-15-7683-6_4
123
