Title
Delite: A Compiler Architecture for Performance-Oriented Embedded Domain-Specific Languages
Abstract
Developing high-performance software is a difficult task that requires the use of low-level, architecture-specific programming models (e.g., OpenMP for CMPs, CUDA for GPUs, MPI for clusters). It is typically not possible to write a single application that can run efficiently in different environments, leading to multiple versions and increased complexity. Domain-Specific Languages (DSLs) are a promising avenue to enable programmers to use high-level abstractions and still achieve good performance on a variety of hardware. This is possible because DSLs have higher-level semantics and restrictions than general-purpose languages, so DSL compilers can perform higher-level optimization and translation. However, the cost of developing performance-oriented DSLs is a substantial roadblock to their development and adoption. In this article, we present an overview of the Delite compiler framework and the DSLs that have been developed with it. Delite simplifies the process of DSL development by providing common components, like parallel patterns, optimizations, and code generators, that can be reused in DSL implementations. Delite DSLs are embedded in Scala, a general-purpose programming language, but use metaprogramming to construct an Intermediate Representation (IR) of user programs and compile to multiple languages (including C++, CUDA, and OpenCL). DSL programs are automatically parallelized and different parts of the application can run simultaneously on CPUs and GPUs. We present Delite DSLs for machine learning, data querying, graph analysis, and scientific computing and show that they all achieve performance competitive to or exceeding C++ code.
Year
DOI
Venue
2014
10.1145/2584665
ACM Trans. Embedded Comput. Syst.
Keywords
Field
DocType
dsl implementation,domain-specific languages,delite dsls,dsl development,performance-oriented dsls,dsl program,different environment,delite compiler framework,dsl compiler,code generator,architecture-specific programming model,compiler architecture,performance,languages,domain specific languages,code generation
Metaprogramming,Domain-specific language,Scala,Programming language,Programming paradigm,Computer science,CUDA,Digital subscriber line,Parallel computing,Code generation,Compiler
Journal
Volume
Issue
ISSN
13
4s
1539-9087
Citations 
PageRank 
References 
48
1.40
29
Authors
7
Name
Order
Citations
PageRank
Arvind K. Sujeeth150220.58
Kevin J. Brown244818.62
HyoukJoong Lee341417.71
Tiark Rompf474345.86
Hassan Chafi5111861.11
Martin Odersky62261170.39
Kunle Olukotun74532373.50