License
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2017.4
URN: urn:nbn:de:0030-drops-72693
URL: http://drops.dagstuhl.de/opus/volltexte/2017/7269/
Go to the corresponding LIPIcs Volume Portal


Anderson, Todd A. ; Liu, Hai ; Kuper, Lindsey ; Totoni, Ehsan ; Vitek, Jan ; Shpeisman, Tatiana

Parallelizing Julia with a Non-Invasive DSL

pdf-format:
LIPIcs-ECOOP-2017-4.pdf (0.8 MB)


Abstract

Computational scientists often prototype software using productivity languages that offer high-level programming abstractions. When higher performance is needed, they are obliged to rewrite their code in a lower-level efficiency language. Different solutions have been proposed to address this trade-off between productivity and efficiency. One promising approach is to create embedded domain-specific languages that sacrifice generality for productivity and performance, but practical experience with DSLs points to some road blocks preventing widespread adoption. This paper proposes a non-invasive domain-specific language that makes as few visible changes to the host programming model as possible. We present ParallelAccelerator, a library and compiler for high-level, high-performance scientific computing in Julia. ParallelAccelerator's programming model is aligned with existing Julia programming idioms. Our compiler exposes the implicit parallelism in high-level array-style programs and compiles them to fast, parallel native code. Programs can also run in "library-only" mode, letting users benefit from the full Julia environment and libraries. Our results show encouraging performance improvements with very few changes to source code required. In particular, few to no additional type annotations are necessary.

BibTeX - Entry

@InProceedings{anderson_et_al:LIPIcs:2017:7269,
  author =	{Todd A. Anderson and Hai Liu and Lindsey Kuper and Ehsan Totoni and Jan Vitek and Tatiana Shpeisman},
  title =	{{Parallelizing Julia with a Non-Invasive DSL}},
  booktitle =	{31st European Conference on Object-Oriented Programming (ECOOP 2017)},
  pages =	{4:1--4:29},
  series =	{Leibniz International Proceedings in Informatics (LIPIcs)},
  ISBN =	{978-3-95977-035-4},
  ISSN =	{1868-8969},
  year =	{2017},
  volume =	{74},
  editor =	{Peter M{\"u}ller},
  publisher =	{Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{http://drops.dagstuhl.de/opus/volltexte/2017/7269},
  URN =		{urn:nbn:de:0030-drops-72693},
  doi =		{10.4230/LIPIcs.ECOOP.2017.4},
  annote =	{Keywords: parallelism, scientific computing, domain-specific languages, Julia}
}

Keywords: parallelism, scientific computing, domain-specific languages, Julia
Seminar: 31st European Conference on Object-Oriented Programming (ECOOP 2017)
Issue Date: 2017
Date of publication: 13.06.2017


DROPS-Home | Fulltext Search | Imprint Published by LZI