CAFe: Coarray Fortran Extensions for Heterogeneous Computing - Rasmussen, Craig; Sottile, Matthew; Rasmussen, Soren; Nagle, Dan; Dumas, William (2016 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW), 2016)
Emerging hybrid accelerator architectures are often proposed for inclusion as components in an exascale machine, not only for performance reasons but also to reduce total power consumption. Unfortunately, programmers of these architectures face a daunting and steep learning curve that frequently requires learning a new language (e.g., OpenCL) or adopting a new programming model. Furthermore, the distributed (and frequently multi-level) nature of the memory organization of clusters of these machines provides an additional level of complexity. This paper presents preliminary work examining how Fortran coarray syntax can be extended to provide simpler access to accelerator architectures. This programming model integrates the Partitioned Global Address Space (PGAS) features of Fortran with some of the more task-oriented constructs in OpenMP 4.0 and OpenACC. It also includes the potential for compiler-based transformations targeting the Open Community Runtime (OCR) environment. We demonstrate these CoArray Fortran extensions (CAFe) by implementing a multigrid Laplacian solver and transforming this high-level code to a mixture of standard coarray Fortran and OpenCL kernels.