Title: Using the loop chain abstraction to schedule across loops in existing code

Authors: Ian J. Bertolacci; Michelle Mills Strout; Jordan Riley; Stephen M.J. Guzik; Eddie C. Davis; Catherine Olschanowsky

Addresses: The University of Arizona, Tucson, AZ 85721, USA ' The University of Arizona, Tucson, AZ 85721, USA ' Department of Mechanical Engineering, Colorado State University, 1374 Campus Delivery, Fort Collins, CO 80523, USA ' Department of Mechanical Engineering, Colorado State University, 1374 Campus Delivery, Fort Collins, CO 80523, USA ' Boise State University, 1910 University Drive, Boise, ID 83725, USA ' Boise State University, 1910 University Drive, Boise, ID 83725, USA

Abstract: Exposing opportunities for parallelisation while explicitly managing data locality is the primary challenge to porting and optimising computational science simulation codes to improve performance. OpenMP provides mechanisms for expressing parallelism, but it remains the programmer's responsibility to group computations to improve data locality. The loop chain abstraction, where a summary of data access patterns is included as pragmas associated with parallel loops, provides compilers with sufficient information to automate the parallelism versus data locality trade-off. We present the syntax and semantics of loop chain pragmas for indicating information about loops belonging to the loop chain and specification of a high-level schedule for the loop chain. We show example usage of the pragmas, detail attempts to automate the transformation of a legacy scientific code written with specific language constraints to loop chain codes, describe the compiler implementation for loop chain pragmas, and exhibit performance results for a computational fluid dynamics benchmark.

Keywords: loop optimisations; loop transformations; loop chain abstraction; data locality; source-to-source transformation; performance optimisation; high performance computing; scientific computing; parallel programming; legacy scientific code.

DOI: 10.1504/IJHPCN.2019.097053

International Journal of High Performance Computing and Networking, 2019 Vol.13 No.1, pp.86 - 104

Received: 13 Feb 2017
Accepted: 17 May 2017

Published online: 17 Dec 2018 *

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