Hassan Chafi (Oracle / Stanford) - Talk on the "Delite" and "QVM" systems
| What |
|
|---|---|
| When |
Sep 13, 2011 from 02:00 PM to 03:00 PM |
| Where | CAB E 72 |
| Add event to calendar |
|
Delite:
Computing systems are becoming increasingly parallel and heterogeneous, and therefore new applications must be capable of exploiting parallelism in order to continue achieving high performance.However targeting these emerging devices often requires using multiple disparate programming models and making decisions that can limit forward scalability. We propose the use of domain-specific languages (DSLs) to provide high-level abstractions that enable transformations to high performance parallel code without degrading programmer productivity. We present the Delite Compiler Framework and Runtime environment, an end-to-end system for executing DSL applications on parallel heterogeneous hardware.
The framework lifts embedded DSL applications to an intermediate representation (IR), performs general-purpose, parallel, and domain-specific optimizations, and generates an execution graph that targets multiple heterogeneous hardware devices.
QVM:
With very few exceptions, all enterprise applications deal with data that is persisted usually using a relational database management system such as Oracle Database or MySQL. However, no programming language currently used to develop enterprise class applications treats persistence as a first class construct. The mismatch between the programming languages used to write application code and the language, SQL, used to query and modify persisted data has led to ever more complex application architectures that involve an increasing amount of so-called middle-ware layers. Beside the increased complexity, the lack of a unified type system between query and application languages diminishes the ultimate performance of enterprise application as a significant amount of computational power and memory bandwidth is spent copying and adapting data to the format that each layer expects.
The QVM, "Query Virtual Machine", project aims to design a multi-lingual runtime in the Oracle database, supporting persistent object storage and persistent programming languages. QVM is a runtime, not a programming language. In this sense it is most similar to Microsoft Common Language Runtime (CLR). However, in contrast to CLR, QVM is designed to allow end-users (not just the runtime developers) to add their own languages. Of course, QVM is also designed specifically for persistent programming languages, where the bulk of the state is designed to have a lifetime longer than the uptime of the computers the state was created on.
Initial versions of QVM will integrate Delite as a multi-lingual front-end responsible for generating lower level QVM code. QVM will also make use of LLVM as a key component of its just in time (JIT) compilation infrastructure.
Bio:
Hasssan Chafi is Research Manager at Oracle Labs where he currently leads the QVM and Ubiquitous Heterogeneity projects. His research investigates domain-specific language infrastructures that simplify development of performance oriented DSLs. Prior to that, Hassan worked in the area of hardware transactional memory as part of the Transactional Coherence and Consistency (TCC) project at Stanford where he developed a scalable extension to the original TCC protocol. Hassan is in the final stages of his PhD candidacy at Stanford University, he is advised by Kunle Olukotun.



