A Source-to-Source Translation of Coarray Fortran with MPI for High Performance

被引:4
|
作者
Iwashita, Hidetoshi [1 ]
Nakao, Masahiro [1 ]
Murai, Hitoshi [1 ]
Sato, Mitsuhisa [1 ]
机构
[1] RIKEN AICS, Kobe, Hyogo, Japan
来源
PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING IN ASIA-PACIFIC REGION (HPC ASIA 2018) | 2018年
关键词
Coarray; Fortran; Compiler; Translator; PGAS; HPC;
D O I
10.1145/3149457.3155888
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Coarray Fortran (CAF) is a partitioned global address space (PGAS) language that is a part of standard Fortran 2008. We have implemented it as a source-to-source translator as a part of the Omni XcalebleMP compiler. Since the output is written in Fortran standard, the translator must utilize Fortran conventions such as the assumed-shape array and generic function in order to reduce both development costs and runtime overhead. The runtime library uses either GASNet, MPI-3, or Fujitsu's low-level Remote Direct Memory Access (RDMA) interface (FJ-RDMA) for one-sided communication. The Omni CAF translator and the runtime library support three types of memory managers that allocate coarray variables and register them to the communication library. The runtime library for the PUT/GET communication detects how contiguous and periodic the source and destination data are and performs communication aggregation. We measured fundamental performance levels by using EPCC Fortran Coarray microbenchmark and found our implementation of PUT/GET communication provides bandwidth as high as MPI_Send/Recv on two supercomputers. Although the small data latency was larger than the one of MPI_Send/Recv, we found that it could be reduced by using non-blocking communication for multiple coarray variables. As a result, when using 1024 processes, we achieved 27% and 42% higher performance than the original MPI code in the Himeno Benchmark classes L and XL, respectively.
引用
收藏
页码:86 / 97
页数:12
相关论文
共 50 条
  • [21] Source-to-source Prolog program compression
    Devienne, P
    Parrain, A
    Taillibert, P
    Varennes, S
    LOGIC PROGRAMMING - PROCEEDINGS OF THE 1998 JOINT INTERNATIONAL CONFERENCE AND SYMPOSIUM ON LOGIC PROGRAMMING, 1998, : 205 - 219
  • [22] Pointer analysis for source-to-source transformations
    Buss, M
    Edwards, SA
    Yao, B
    Waddington, D
    Fifth IEEE International Workshop on Source Code Analysis and Manipulation, Proceedings, 2005, : 139 - 148
  • [23] A Source-to-source NUMA Profiling Approach
    Machado, Leticia S. F.
    Tadonki, Claude
    Senger, Hermes
    2023 INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING WORKSHOPS, SBAC-PADW, 2023, : 54 - 59
  • [24] A Source-to-Source OpenACC Compiler for CUDA
    Tabuchi, Akihiro
    Nakao, Masahiro
    Sato, Mitsuhisa
    EURO-PAR 2013: PARALLEL PROCESSING WORKSHOPS, 2014, 8374 : 178 - 187
  • [25] PROGRAM IMPROVEMENT BY SOURCE-TO-SOURCE TRANSFORMATION
    LOVEMAN, DB
    JOURNAL OF THE ACM, 1977, 24 (01) : 121 - 145
  • [26] TRACO: SOURCE-TO-SOURCE PARALLELIZING COMPILER
    Palkowski, Marek
    Bielecki, Wlodzimierz
    COMPUTING AND INFORMATICS, 2016, 35 (06) : 1277 - 1306
  • [27] AUTOMATIC DATABASE SYSTEM CONVERSION - SCHEMA REVISION, DATA TRANSLATION, AND SOURCE-TO-SOURCE PROGRAM TRANSFORMATION
    SHNEIDERMAN, B
    THOMAS, G
    AFIPS CONFERENCE PROCEEDINGS, 1982, 51 : 579 - +
  • [28] Comparing Coarray Fortran (CAF) with MPI for several structured mesh PDE applications
    Garain, Sudip
    Balsara, Dinshaw S.
    Reid, John
    JOURNAL OF COMPUTATIONAL PHYSICS, 2015, 297 : 237 - 253
  • [29] Source-to-Source Conversion Based on Formal Definition
    张幸儿
    朱晓军
    李建新
    董建宁
    JournalofComputerScienceandTechnology, 1991, (02) : 178 - 184
  • [30] Experiences in using Cetus for source-to-source transformations
    Johnson, TA
    Lee, SI
    Fei, L
    Basumallik, A
    Upadhyaya, G
    Eigenmann, R
    Midkiff, SP
    LANGUAGES AND COMPILERS FOR HIGH PERFORMANCE COMPUTING, 2005, 3602 : 1 - 14