Improving high-performance sparse libraries using compiler assisted specialization: a PETSC (portable, extensible toolkit for scientific computation) case study

Update Item Information
Publication Type thesis
School or College College of Engineering
Department Computing
Author Ramalingam, Shreyas
Title Improving high-performance sparse libraries using compiler assisted specialization: a PETSC (portable, extensible toolkit for scientific computation) case study
Date 2012-05
Description Scientific libraries are written in a general way in anticipation of a variety of use cases that reduce optimization opportunities. Significant performance gains can be achieved by specializing library code to its execution context: the application in which it is invoked, the input data set used, the architectural platform and its backend compiler. Such specialization is not typically done because it is time-consuming, leads to nonportable code and requires performance-tuning expertise that application scientists may not have. Tool support for library specialization in the above context could potentially reduce the extensive under-standing required while significantly improving performance, code reuse and portability. In this work, we study the performance gains achieved by specializing the sparse linear algebra functions in PETSc (Portable, Extensible Toolkit for Scientific Computation) in the context of three scientific applications on the Hopper Cray XE6 Supercomputer at NERSC. This work takes an initial step towards automating the specialization of scientific libraries. We study the effects of the execution environment on sparse computations and design optimization strategies based on these effects. These strategies include novel techniques that augment well-known source-to-source transformations to significantly improve the quality of the instructions generated by the back end compiler. We use CHiLL (Composable High-Level Loop Transformation Framework) to apply source-level transformations tailored to the special needs of sparse computations. A conceptual framework is proposed where the above strategies are developed and expressed as recipes by experienced performance engineers that can be applied across execution environments. We demonstrate significant performance improvements of more than 1.8X on the library functions and overall gains of 9 to 24% on three scalable applications that use PETSc's sparse matrix capabilities.
Type Text
Publisher University of Utah
Subject PETSC; Compiler assisted specialization
Dissertation Institution University of Utah
Dissertation Name Master of Science
Language eng
Rights Management Copyright © Shreyas Ramalingam 2012
Format Medium application/pdf
Format Extent 618,999 bytes
Identifier us-etd3/id/701
Source Original in Marriott Library Special Collections, ZA3.5 2012 .R36
ARK ark:/87278/s64j0vw8
Setname ir_etd
ID 194856
Reference URL https://collections.lib.utah.edu/ark:/87278/s64j0vw8