Accelerating Fortran codes: A method for integrating Coarray Fortran with CUDA Fortran and OpenMP

Fortran's prominence in scientific computing requires strategies to ensure both that legacy codes are efficient on high-performance computing systems, and that the language remains attractive for the development of new high-performance codes. Coarray Fortran (CAF), part of the Fortran 2008 standard introduced for parallel programming, facilitates distributed memory parallelism with a syntax familiar to Fortran programmers, simplifying the transition from single-processor to multi-processor coding. This research focuses on innovating and refining a parallel programming methodology that fuses the strengths of Intel Coarray Fortran, Nvidia CUDA Fortran, and OpenMP for distributed memory parallelism, high-speed GPU acceleration and shared memory parallelism respectively. We consider the management of pageable and pinned memory, CPU-GPU affinity in NUMA multiprocessors, and robust compiler interfacing with speed optimisation. We demonstrate our method through its application to a parallelised Poisson solver and compare the methodology, implementation, and scaling performance to that of the Message Passing Interface (MPI), finding CAF offers similar speeds with easier implementation. For new codes, this approach offers a faster route to optimised parallel computing. For legacy codes, it eases the transition to parallel computing, allowing their transformation into scalable, high-performance computing applications without the need for extensive re-design or additional syntax. • Intel Coarray Fortran with Nvidia CUDA Fortran and OpenMP allows parallel computing without extensive code redesign. • Coarray Fortran offers comparable performance to the Message Passing Interface (MPI) for distributed memory parallelism. • This hybrid configuration shows near-linear scaling across different hardware setups. • CPU-GPU affinity can be achieved when using this hybrid method and affects performance.

Authors

Institutions

Publication Details

Journal
Journal of Parallel and Distributed Computing
Published
2024-09-06
DOI
https://doi.org/10.1016/j.jpdc.2024.104977
Citations
6
Primary Topic
Evolutionary Algorithms and Applications
Type
article
Field-Weighted Citation Impact
2.08

Funders

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Accelerating Fortran codes: A method for integrating Coarray Fortran with CUDA Fortran and OpenMP

Igor Kulikov, Eduard I. Vorobyov, James McKevitt
6 citations
Journal of Parallel and Distributed Computing
Evolutionary Algorithms and Applications
2.08
article

Accelerating Fortran codes: A method for integrating Coarray Fortran with CUDA Fortran and OpenMP

Igor Kulikov, Eduard I. Vorobyov, James McKevitt
article en
6 citations

Abstract

Fortran's prominence in scientific computing requires strategies to ensure both that legacy codes are efficient on high-performance computing systems, and that the language remains attractive for the development of new high-performance codes. Coarray Fortran (CAF), part of the Fortran 2008 standard introduced for parallel programming, facilitates distributed memory parallelism with a syntax familiar to Fortran programmers, simplifying the transition from single-processor to multi-processor coding. This research focuses on innovating and refining a parallel programming methodology that fuses the strengths of Intel Coarray Fortran, Nvidia CUDA Fortran, and OpenMP for distributed memory parallelism, high-speed GPU acceleration and shared memory parallelism respectively. We consider the management of pageable and pinned memory, CPU-GPU affinity in NUMA multiprocessors, and robust compiler interfacing with speed optimisation. We demonstrate our method through its application to a parallelised Poisson solver and compare the methodology, implementation, and scaling performance to that of the Message Passing Interface (MPI), finding CAF offers similar speeds with easier implementation. For new codes, this approach offers a faster route to optimised parallel computing. For legacy codes, it eases the transition to parallel computing, allowing their transformation into scalable, high-performance computing applications without the need for extensive re-design or additional syntax. • Intel Coarray Fortran with Nvidia CUDA Fortran and OpenMP allows parallel computing without extensive code redesign. • Coarray Fortran offers comparable performance to the Message Passing Interface (MPI) for distributed memory parallelism. • This hybrid configuration shows near-linear scaling across different hardware setups. • CPU-GPU affinity can be achieved when using this hybrid method and affects performance.

Journal of Parallel and Distributed ComputingVol. 195
University of Vienna (AT), Department of Space (IN), Institute of Computational Mathematics and Mathematical Geophysics (RU), University College London (GB)
Russian Foundation for Basic Research, Austrian Science Fund, Alliance de recherche numérique du Canada
Openalex Percentile: Top 11%
Evolutionary Algorithms and Applications
2.08
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.