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 difficult problems
of parallelization, data decomposition and
machine-specific details. Ordinary programmers are having
a difficult 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-specific
approach to heterogeneous parallel programming. We
propose language virtualization as a new principle that
enables the construction of highly efficient parallel
domain specific languages that are embedded in a common
host language. We define criteria for language
virtualization and present techniques to achieve them. We
present two concrete case studies of domain-specific
languages that are implemented using our virtualization
approach.
%0 Report
%1 ChafiEtAl2010
%A Chafi, Hassan
%A DeVito, Zach
%A Moors, Adriaan
%A Rompf, Tiark
%A Sujeeth, Arvind
%A Hanrahan, Pat
%A Odersky, Martin
%A Olukotun, Kunle
%D 2010
%K diss dsl scala
%T Language Virtualization for Heterogeneous Parallel Computing
%X 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 difficult problems
of parallelization, data decomposition and
machine-specific details. Ordinary programmers are having
a difficult 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-specific
approach to heterogeneous parallel programming. We
propose language virtualization as a new principle that
enables the construction of highly efficient parallel
domain specific languages that are embedded in a common
host language. We define criteria for language
virtualization and present techniques to achieve them. We
present two concrete case studies of domain-specific
languages that are implemented using our virtualization
approach.
@techreport{ChafiEtAl2010,
abstract = {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 difficult problems
of parallelization, data decomposition and
machine-specific details. Ordinary programmers are having
a difficult 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-specific
approach to heterogeneous parallel programming. We
propose language virtualization as a new principle that
enables the construction of highly efficient parallel
domain specific languages that are embedded in a common
host language. We define criteria for language
virtualization and present techniques to achieve them. We
present two concrete case studies of domain-specific
languages that are implemented using our virtualization
approach.},
added-at = {2011-03-07T21:47:11.000+0100},
affiliation = {EPFL},
author = {Chafi, Hassan and DeVito, Zach and Moors, Adriaan and Rompf, Tiark and Sujeeth, Arvind and Hanrahan, Pat and Odersky, Martin and Olukotun, Kunle},
biburl = {https://www.bibsonomy.org/bibtex/2f3976aeb933cbccfeb85e65dbc21cc08/fsteeg},
details = {http://infoscience.epfl.ch/record/148814},
documenturl = {http://infoscience.epfl.ch/record/148814/files/paper.pdf},
interhash = {51ec340245ea08112e18abd4d88360e7},
intrahash = {f3976aeb933cbccfeb85e65dbc21cc08},
keywords = {diss dsl scala},
oai-id = {oai:infoscience.epfl.ch:148814},
oai-set = {report; fulltext-public; fulltext},
pagecount = {13},
status = {PUBLISHED},
submitter = {177178; 177178; 177178},
timestamp = {2011-03-07T21:47:11.000+0100},
title = {Language {V}irtualization for {H}eterogeneous {P}arallel {C}omputing},
unit = {LAMP},
year = 2010
}