Implementation and Performance
Evaluation of Omni Compiler
Masahiro Nakao and Hitoshi Murai
Abstract This chapter describes the implementation and performance evaluation
of Omni compiler, which is a reference implementation of the compiler for XcalableMP. For performance evaluation, this chapter also presents how to implement
the HPC Challenge benchmarks, which is a benchmark suite for an HPC parallel
language. The results show that the performance of XMP is comparable to that of
MPI in many cases.
1 Overview
Omni compiler is a source-to-source compiler that translates a sequential code in
C and Fortran with XcalableMP (XMP), XcalableACC (XACC), and OpenACC
directives into a parallel code (https://omni-compiler.org). The translated parallel
code is compiled with a native compiler linked with Omni compiler runtime library.
Omni compiler has been developed by Programming Environment Research Team
of RIKEN Center for Computational Science [1] and HPCS laboratory [2] of
University of Tsukuba in Japan.
2 Implementation
2.1 Operation Flow
In Omni compiler, XcodeML [3] is used to analyze a code in an intermediate code
format of XML expression. Figure 1 shows an operation flow of Omni compiler.
Firstly, Omni compiler translates directives in a user code into the runtime functions.
M. Nakao () · H. Murai
RIKEN Center for Computational Science, Kobe, Hyogo, Japan
e-mail: masahiro.nakao@riken.jp; h-murai@riken.jp
© The Author(s) 2021
M. Sato (ed.), XcalableMP PGAS Programming Language,
https://doi.org/10.1007/978-981-15-7683-6_2
73
Précédent

- 80/265

Suivant