Title |
Improving high-performance sparse libraries using compiler assisted specialization: a PETSC (portable, extensible toolkit for scientific computation) case study |
Publication Type |
thesis |
School or College |
College of Engineering |
Department |
Computing |
Author |
Ramalingam, Shreyas |
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 |
application/pdf |
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 |