Title: ForOpenCL: transformations exploiting array syntax in Fortran for accelerator programming

Authors: Matthew J. Sottile; Craig E. Rasmussen; Wayne N. Weseloh; Robert W. Robey; Daniel Quinlan; Jeffrey Overbey

Addresses: Galois, Inc., Portland, OR 97204, USA ' Los Alamos National Laboratory, Los Alamos, NM 87545, USA ' Los Alamos National Laboratory, Los Alamos, NM 87545, USA ' Los Alamos National Laboratory, Los Alamos, NM 87545, USA ' Lawrence Livermore National Laboratory, Livermore, CA 94550, USA ' National Centre for Supercomputing Applications, Urbana, IL 61801, USA

Abstract: Emerging GPU architectures for high performance computing are well suited to a data-parallel programming model. This paper presents preliminary work examining a programming methodology that provides Fortran programmers with access to these emerging systems. We use array constructs in Fortran to show how this infrequently exploited, standardised language feature is easily transformed to lower-level accelerator code. The transformations in ForOpenCL are based on a simple mapping from Fortran to OpenCL. We demonstrate, using a stencil code solving the shallow-water fluid equations, that the performance of the ForOpenCL compiler-generated transformations is comparable with that of hand-optimised OpenCL code.

Keywords: Fortran; OpenCL; accelerator programming; GPU programming; graphics processing unit; code generation; GPU architectures; high performance computing; parallel programming; stencil code; shallow water fluid equations.

DOI: 10.1504/IJCSE.2013.052113

International Journal of Computational Science and Engineering, 2013 Vol.8 No.1, pp.47 - 57

Received: 15 Dec 2011
Accepted: 19 Mar 2012

Published online: 27 Dec 2013 *

Full-text access for editors Full-text access for subscribers Purchase this article Comment on this article