Tuning C++ Applications for the Latest Generation x64 Processors with PGI Compilers and Tools

Douglas W. Doerfler, David M. Hensinger, Brent Leback, D. Miles · OSTI OAI (U.S. Department of Energy Office of Scientific and Technical Information) · 2007

ABSTRACT: At CUG 2006, a cache oblivious implementation of a two dimensional Lagrangian hydrodynamics model of a single ideal gas material was presented. This paper presents further optimizations to this C++ application to allow packed, consecutive-element storage of vectors, some restructuring of loops containing neighborhood operations, and adding type qualifiers to some C++ pointer declarations to improve performance. In addition to restructuring of the application, analysis of the compiler-generated code resulted in improvements to the latest PGI C++ compiler in the area of loop-carried redundancy elimination, resolution of pointer aliasing conflicts, and vectorization of loops containing min and max reductions. These restructuring and compiler optimization efforts by PGI and Sandia have resulted in application speedups of 1.25 to 1.80 on the latest generation of x64 processors.

Read the paper · More papers on PaperTik