Specializing Compilers For High Performance Computing Through Coordinated Data and Algorithm Optimizations


  • Total amount : $477,631
  • Period : 08/01/14 - 07/31/17
  • Priciple investigator: Qing Yi
  • co-investigators: none
  • Students supported: TBA
  • Project Summary : This research brings about a new methodology for developing compilers, where the data structure and algorithm implementations of software applications are independently normalized and categorized into commonly occurring patterns, compiler optimizations are made customizable components that can be flexibly composed, and all optimizations are closely coordinated and collectively specialized to attain a highest level of performance. The pattern-based specialization specifically targets a number of domains, e.g., dense/sparse matrix codes, stencil computations, and graph/machine learning algorithms, which are critical to scientific computing. A uniform annotation interface is provided for developers to concisely document the higher-level semantics of abstractions provided by varying domain-specific and parallel programming libraries, thereby allowing the development of specially customized library-aware compilers that can automatically coordinate the uses of library abstractions to maximize the overall performance of large scale multiprocessor applications. Automated optimization tuning support is provided to support the performance portability of applications on modern heterogeneous computing platforms.

    The deliverables of this research include a collection of specialized compiler optimizers, distributed open source online, with associated auto-tuning toolkits to target them for varying modern multi-core and GPU platforms, and with a graphical user interface for users to interactively invoke these optimizers. These optimizers, together with their interactive configuration interfaces, are expected to fundamentally change how high performance computing applications are developed, while providing computational specialists a toolset to automatically generate optimized library kernels without manually composing assembly codes.

  • Selected Publications


    Open-source software: The POET program transformation language

    Software download, manuals, and tutorials

    going back to the main research page