Type-Directed Program Synthesis and Constraint Generation for Library Portability

Bruce Collie, Philip Ginsbach, Michael O'Boyle

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Fast numerical libraries have been a cornerstone of scientific computing for decades, but this comes at a price. Programs may be tied to vendor specific software ecosystems resulting in polluted, non-portable code. As we enter an era of heterogeneous computing, there is an explosion in the number of accelerator libraries required to harness specialized hardware. We need a system that allows developers to exploit ever-changing accelerator libraries, without over-specializing their code.

As we cannot know the behavior of future libraries ahead of time, this paper develops a scheme that assists developers in matching their code to new libraries, without requiring the source code for these libraries. Furthermore, it can recover equivalent code from programs that use existing libraries and automatically port them to new interfaces. It first uses program synthesis to determine the meaning of a library, then maps the synthesized description into generalized constraints which are used to search the program for replacement opportunities to present to the developer.

We applied this approach to existing large applications from the scientific computing and deep learning domains. Using our approach, we show speedups ranging from 1.1× to over 10× on end to end performance when using accelerator libraries.
Original languageEnglish
Title of host publication2019 28th International Conference on Parallel Architectures and Compilation Techniques (PACT)
PublisherInstitute of Electrical and Electronics Engineers (IEEE)
Pages55-67
Number of pages13
ISBN (Electronic)978-1-7281-3613-4
ISBN (Print)978-1-7281-3614-1
DOIs
Publication statusPublished - 7 Nov 2019
Event28th International Conference on Parallel Architectures and Compilation Techniques - Seattle, United States
Duration: 21 Sep 201925 Sep 2019
https://pactconf.org/

Publication series

Name
PublisherInstitute of Electrical and Electronics Engineers (IEEE)
ISSN (Print)1089-795X
ISSN (Electronic)2641-7936

Conference

Conference28th International Conference on Parallel Architectures and Compilation Techniques
Abbreviated titlePACT 2019
CountryUnited States
CitySeattle
Period21/09/1925/09/19
Internet address

Keywords

  • C++ language
  • learning (artificial intelligence)
  • message passing
  • parallel programming
  • program compilers
  • software architecture
  • software libraries
  • software portability
  • scientific computing
  • type-directed program synthesis
  • constraint generation
  • library portability
  • vendor specific software ecosystems
  • heterogeneous computing
  • source code
  • Libraries
  • Informatics
  • Synthesizers
  • Semantics
  • Software
  • Ecosystems
  • Deep learning
  • program synthesis
  • code rejuvenation
  • constraint programming
  • compilers

Fingerprint

Dive into the research topics of 'Type-Directed Program Synthesis and Constraint Generation for Library Portability'. Together they form a unique fingerprint.

Cite this