Telescoping languages: A strategy for automatic generation of scientific problem-solving systems from annotated libraries

Ken Kennedy, Bradley Broom, Keith Cooper, Jack Dongarra, Rob Fowler, Dennis Gannon, Lennart Johnsson, John Mellor-Crummey, Linda Torczon

Research output: Contribution to journalArticlepeer-review

45 Scopus citations

Abstract

As machines and programs have become more complex, the process of programming applications that can exploit the power of high-performance systems has become more difficult and correspondingly more labor-intensive. This has substantially widened the software gap--the discrepancy between the need for new software and the aggregate capacity of the workforce to produce it. This problem has been compounded by the slow growth of programming productivity, especially for high-performance programs, over the past two decades. One way to bridge this gap is to make it possible for end users to develop programs in high-level domain-specific programming systems. In the past, a major impediment to the acceptance of such systems has been the poor performance of the resulting applications. To address this problem, we are developing a new compiler-based infrastructure, called TeleGen, that will make it practical to construct efficient domain-specific high-level languages from annotated component libraries. We call these languages telescoping languages, because they can be nested within one another. For programs written in telescoping languages, high performance and reasonable compilation times can be achieved by exhaustively analyzing the component libraries in advance to produce a language processor that recognizes and optimizes library operations as primitives in the language. The key to making this strategy practical is to keep compile times low by generating a custom compiler with extensive built-in knowledge of the underlying libraries. The goal is to achieve compile times that are linearly proportional to the size of the program presented by the user, rather than to the aggregate size of that program plus the base libraries.

Original languageEnglish
Pages (from-to)1803-1826
Number of pages24
JournalJournal of Parallel and Distributed Computing
Volume61
Issue number12
DOIs
StatePublished - 2001
Externally publishedYes

Funding

Many people have contributed to the development of the ideas described in this paper. John Reynders’ lucid descriptions of the POOMA project deeply influenced the ideas in this project. We acknowledge the NSF Center for Research on Parallel Computation; the Los Alamos Computer Science Institute, supported by the Department of Energy ASCI program; and the GrADS Project, supported by NSF Next Generation Software Program under the program management of Frederica Darema, for the support they have provided and for their influence on the vision behind this work.

FundersFunder number
Los Alamos Computer Science Institute
NSF Center for Research on Parallel Computation
National Science Foundation
U.S. Department of Energy

    Fingerprint

    Dive into the research topics of 'Telescoping languages: A strategy for automatic generation of scientific problem-solving systems from annotated libraries'. Together they form a unique fingerprint.

    Cite this