ABSTRACT
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.
- John Reid. 2010. Coarrays in the next Fortran Standard. ISO/IEC JTC1/SC22/WG5 N1824, (Apr. 21, 2010)Google Scholar
- ISO/IEC 2015. Information technology -- Additional Parallel Features in Fortran. ISO/IEC TS 18508:2015(E). (Dec. 2015)Google Scholar
- Rice University. Coarray Fortran 2.0. http://caf.rice.edu/download.htmlGoogle Scholar
- HPCTools Research Group at the University of Houston. OpenUH Open-source UH Compiler. http://web.cs.uh.edu/~openuh/Google Scholar
- OpenCoarrays. http://www.opencoarrays.orgGoogle Scholar
- XcalableMP Specification Working Group. 2014. XcalableMP Language Specification Version 1.2.1. http://www.xcalablemp.org/specification.htmlGoogle Scholar
- Omni Compiler Project. http://omni-compiler.orgGoogle Scholar
- Hidetoshi Iwashita, Masahiro Nakao, Mitsuhisa Sato. 2015. Preliminary Implementation of Coarray Fortran Translator Based on Omni XcalableMP. Proc. of 9th International Conference on PGAS Programming Models (PGAS2015), P. 70--75, Washington, D.C. USA (Sep. 2015). Google ScholarDigital Library
- Naoyuki Shida, Shinji Sumimoto, and Atsuya Uno. 2012. MPI Library and Low-Level Communication on the K computer, FUJITSU Scientific & Technical Journal, Vol. 48, No. 3, pp. 324--330Google Scholar
- David Henty. 2012. A Parallel Benchmark Suite for Fortran Coarrays. In Applications, Tools and Techniques on the Road to Exascale Computing, Advances in Parallel Computing, Vol. 22, pp. 281--288.Google Scholar
- Himeno Benchmark. http://accc.riken.jp/en/supercom/himenobmt/Google Scholar
- Cristian Coarfa. 2007. Portable High Performance and Scalability of Global Address Space Languages. Ph.D. Thesis, Rice University (Jan. 2007). Google ScholarDigital Library
- John Mellor-Crummey, Laksono Adhianto, William N. Scherer III, and Guohua Jin. 2009. PGAS '09, Proc. of 3rd Conference on Partitioned Global Address Space Programming Models. Ashburn, VA, (Oct. 2009)Google Scholar
- Deepak Eachempati, Hyoung Joon Jun, and Barbara Chapman. 2010. An Open-Source Compiler and Runtime Implementation for Coarray Fortran. PGAS '10, 4th Int'l Conf. on PGAS Programming Models, No.13. Google ScholarDigital Library
- Shiyao Ge, Deepak Eachempati, Dounia Khaldi, and Barbara Chapman. 2015. An Evaluation of Anticipated Extensions for Fortran Coarrays, PGAS'15, 9th International Conference on Partitioned Global Address Space Programming Models, P47-58, Washington, D.C. USA (Sep. 2015). Google ScholarDigital Library
- Alessandro Fanfarillo, Tobias Burnus, Valeria Cardellini, Salvatore Filippone, Dan Nagle, and Damian Rouson. 2014. OpenCoarrays: Open-source Transport Layers Supporting Coarray Fortran Compilers, PGAS '14, Proc. of 8th International Conference on Partitioned Global Address Space Programming Models, No. 4. Google ScholarDigital Library
Index Terms
- A Source-to-Source Translation of Coarray Fortran with MPI for High Performance
Recommendations
Preliminary Performance Evaluation of Coarray-based Implementation of Fiber Miniapp Suite using XcalableMP PGAS Language
PAW17: Proceedings of the Second Annual PGAS Applications WorkshopXcalableMP (XMP) is a Partitioned Global Address Space (PGAS) language that is defined by the XMP Specification Working Group of the PC Cluster Consortium. This paper provides the implementation and evaluation of the Fiber miniapp suite, which is ...
Preliminary Implementation of Coarray Fortran Translator Based on Omni XcalableMP
PGAS '15: Proceedings of the 2015 9th International Conference on Partitioned Global Address Space Programming ModelsXcalableMP (XMP) is a PGAS language for distributed memory environments. It employs Coarray Fortran (CAF) features as the local-view programming model. We implemented the main part of CAF in the form of a translator, i.e., a source-to-source compiler, ...
CAF Events Implementation Using MPI-3 Capabilities
EuroMPI '16: Proceedings of the 23rd European MPI Users' Group MeetingMPI-3.1 is currently the most recent version of the MPI standard. It adds important extensions to MPI-2, including a simplified semantic for the one-sided communication routines and a new tool interface, capable of exposing performance data of the MPI ...
Comments