Stanford PPL Stanford Engineering


Delite
A compiler and runtime infrastructure for building new performance-oriented DSLs Read More!
Green-Marl
A DSL for graph analysis Read More!
Liszt
A DSL for solving mesh-based PDEs Read More!


Research Spotlight

Spotlight
The following paper was presented at ASPLOS 2012:

Association for Computing Machinery Architectural Support for Programming Languages and Operating Systems
London, United Kingdom
March 3-7, 2012

  • Green-Marl: A DSL for Easy and Efficient Graph Analysis
    Sungpack Hong, Hassan Chafi, Eric Sedlar, and Kunle Olukotun

    The increasing importance of graph-data based applications is fueling the need for highly efficient and parallel implementations of graph analysis software. In this paper we describe Green-Marl, a domain-specific language (DSL) whose high level language constructs allow developers to describe their graph analysis algorithms intuitively, but expose the data-level parallelism inherent in the algorithms. We also present our Green-Marl compiler which translates high-level algorithmic description written in Green-Marl into an efficient C++ implementation by exploiting this exposed data-level parallelism. Furthermore, our Green-Marl compiler applies a set of optimizations that take advantage of the high-level semantic knowledge encoded in the Green-Marl DSL. We demonstrate that graph analysis algorithms can be written very intuitively with Green-Marl through some examples, and our experimental results show that the compiler-generated implementation out of such descriptions performs as well as or better than highly-tuned handcoded implementations.
    Paper PDF | Slides



Tutorial on DSLs and Delite at CGO 2012:
Association for Computing Machinery International Symposium on Code Generation and Optimization
San Jose, California, USA
March 31 - April 4, 2012
  • High-Performance Domain-Specific Languages using Delite
    Kunle Olukotun, Hassan Chafi, Arvind Sujeeth, Zach Devito, Sungpack Hong, Kevin Brown, HyoukJoong Lee

    This tutorial is an introduction to developing domain specific languages (DSLs) for productivity and performance using Delite. Delite is a Scala infrastructure that simplifies the process of implementing DSLs for parallel computation. The goal of this tutorial is to equip attendees with the knowledge and tools to develop DSLs that can dramatically improve the experience of using high performance computation in important scientific and engineering domains. In the first half of the day we will focus on example DSLs that provide both high-productivity and performance. In the second half of the day we will focus on understanding the infrastructure for implementing DSLs in Scala and developing techniques for defining good DSLs.
    Tutorial Website



Who We Are

The Stanford Pervasive Parallelism Lab is a collaboration of many leading Stanford computer scientists and electrical engineers for the purpose of developing the parallel computing platform for the year 2020. We are supported by a completely open industrial affiliates program.

Why We Exist

New heterogeneous architectures continue to provide increases in achievable performance, but programming these devices to reach maximum performance levels is not straightforward. The goal of the PPL is to make heterogeneous parallelism accessible to average software developers through domain-specific languages (DSLs) so that it can be freely used in all computationally demanding applications.

What We Do

The core of our research agenda is to allow the domain expert to develop parallel software without becoming an expert in parallel programming. Our approach is to use a layered system based on DSLs, a common parallel compiler and runtime infrastructure, and an underlying architecture that provides efficient mechanisms for communication, synchronization, and performance monitoring.


Read More

Member Companies

Oracle NVIDIA
AMD IBM Intel HP NEC