Language Virtualization for Heterogeneous Parallel Computing
Hassan Cha?, Zach DeVito, Adriaan Moors, Tiark Rompf, Arvind Sujeeth, Pat Hanrahan, Martin Odersky, and Kunle Olukotun describe an approach to parallel DSLs that is a hybrid between external DSLs and internal DSLs in Language Virtualization for Heterogeneous Parallel Computing.
As heterogeneous parallel systems become dominant, application developers are being forced to turn to an incompatible mix of low level programming models (e.g. OpenMP, MPI, CUDA, OpenCL). However, these models do little to shield developers from the dif?cult problems of parallelization, data decomposition and machine-speci?c details. Ordinary programmers are having a dif?cult time using these programming models effectively. To provide a programming model that addresses the productivity and performance requirements for the average programmer, we explore a domain-speci?c approach to heterogeneous parallel programming.
We propose language virtualization as a new principle that enables the construction of highly ef?cient parallel domain speci?c languages that are embedded in a common host language. We de?ne criteria for language virtualization and present techniques to achieve them.We present two concrete case studies of domain-speci?c languages that are implemented using our virtualization approach.
While the motivation of the paper is parallelization the proposed design looks like LINQ expression trees dialed to 11.