Heterogeneous computers with processors and accelerators are becoming widespread in scientific computing. However, it is difficult to program hybrid architectures and there is no commonly accepted programming model. Ideally, applications should be written in a way that is portable to many platforms, but providing this portability for general programs is a hard problem.</p> <p>By restricting the class of programs considered, we can make this portability feasible. We present Liszt, a domain-specific language for constructing mesh-based PDE solvers. We introduce language statements for interacting with an unstructured mesh, and storing data at its elements. Program analysis of these statements enables our compiler to expose the parallelism, locality, and synchronization of Liszt programs. Using this analysis, we generate applications for multiple platforms: a cluster, an SMP, and a GPU. This approach allows Liszt applications to perform within 12% of hand-written C++, scale to large clusters, and experience order-of-magnitude speedups on GPUs.
%0 Conference Paper
%1 DeVito:2011:LDS:2063384.2063396
%A DeVito, Zachary
%A Joubert, Niels
%A Palacios, Francisco
%A Oakley, Stephen
%A Medina, Montserrat
%A Barrientos, Mike
%A Elsen, Erich
%A Ham, Frank
%A Aiken, Alex
%A Duraisamy, Karthik
%A Darve, Eric
%A Alonso, Juan
%A Hanrahan, Pat
%B Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis
%C New York, NY, USA
%D 2011
%I ACM
%K super.computing
%P 9:1--9:12
%R 10.1145/2063384.2063396
%T Liszt: a domain specific language for building portable mesh-based PDE solvers
%U http://doi.acm.org/10.1145/2063384.2063396
%X Heterogeneous computers with processors and accelerators are becoming widespread in scientific computing. However, it is difficult to program hybrid architectures and there is no commonly accepted programming model. Ideally, applications should be written in a way that is portable to many platforms, but providing this portability for general programs is a hard problem.</p> <p>By restricting the class of programs considered, we can make this portability feasible. We present Liszt, a domain-specific language for constructing mesh-based PDE solvers. We introduce language statements for interacting with an unstructured mesh, and storing data at its elements. Program analysis of these statements enables our compiler to expose the parallelism, locality, and synchronization of Liszt programs. Using this analysis, we generate applications for multiple platforms: a cluster, an SMP, and a GPU. This approach allows Liszt applications to perform within 12% of hand-written C++, scale to large clusters, and experience order-of-magnitude speedups on GPUs.
%@ 978-1-4503-0771-0
@inproceedings{DeVito:2011:LDS:2063384.2063396,
abstract = {Heterogeneous computers with processors and accelerators are becoming widespread in scientific computing. However, it is difficult to program hybrid architectures and there is no commonly accepted programming model. Ideally, applications should be written in a way that is portable to many platforms, but providing this portability for general programs is a hard problem.</p> <p>By restricting the class of programs considered, we can make this portability feasible. We present Liszt, a domain-specific language for constructing mesh-based PDE solvers. We introduce language statements for interacting with an unstructured mesh, and storing data at its elements. Program analysis of these statements enables our compiler to expose the parallelism, locality, and synchronization of Liszt programs. Using this analysis, we generate applications for multiple platforms: a cluster, an SMP, and a GPU. This approach allows Liszt applications to perform within 12% of hand-written C++, scale to large clusters, and experience order-of-magnitude speedups on GPUs.},
acmid = {2063396},
added-at = {2012-08-16T04:28:50.000+0200},
address = {New York, NY, USA},
articleno = {9},
author = {DeVito, Zachary and Joubert, Niels and Palacios, Francisco and Oakley, Stephen and Medina, Montserrat and Barrientos, Mike and Elsen, Erich and Ham, Frank and Aiken, Alex and Duraisamy, Karthik and Darve, Eric and Alonso, Juan and Hanrahan, Pat},
biburl = {https://www.bibsonomy.org/bibtex/287872af55e601d94f28706c6f292e8a7/ytyoun},
booktitle = {Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis},
doi = {10.1145/2063384.2063396},
interhash = {42265df88f194f3fbe37bb02a294caae},
intrahash = {87872af55e601d94f28706c6f292e8a7},
isbn = {978-1-4503-0771-0},
keywords = {super.computing},
location = {Seattle, Washington},
numpages = {12},
pages = {9:1--9:12},
publisher = {ACM},
series = {SC '11},
timestamp = {2012-08-16T04:28:50.000+0200},
title = {Liszt: a domain specific language for building portable mesh-based PDE solvers},
url = {http://doi.acm.org/10.1145/2063384.2063396},
year = 2011
}