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 *