Petalisp: Run Time Code Generation for Operations on Strided Arrays

Heisig M, Köstler H (2018)


Publication Language: English

Publication Type: Conference contribution

Publication year: 2018

Pages Range: 11 - 17

Conference Proceedings Title: Proceedings of the 5th ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming

Event location: Philadelphia, PA, USA

DOI: 10.1145/3219753.3219755

Abstract

We present the data parallel programming library Petalisp --- an extension of Common Lisp for data parallel programming. The core of Petalisp is deliberately simple. It features only a single data structure --- the strided array --- and four operations on such strided arrays, namely element-wise application of functions, reduction with a binary function, fusion of several arrays and affine-linear reshaping.

The novelty of our approach is that the contents of each strided array are subject to lazy evaluation and that we delay performance analysis, optimization and code generation entirely to the run time. In doing so, we considerably increase the ability of our compiler to make qualified decisions, at the price of significant run time overhead. We show that this overhead is manageable and that Petalisp is able to execute several thousand explicit array evaluations per second.

Authors with CRIS profile

Related research project(s)

How to cite

APA:

Heisig, M., & Köstler, H. (2018). Petalisp: Run Time Code Generation for Operations on Strided Arrays. In ACM (Eds.), Proceedings of the 5th ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming (pp. 11 - 17). Philadelphia, PA, USA.

MLA:

Heisig, Marco, and Harald Köstler. "Petalisp: Run Time Code Generation for Operations on Strided Arrays." Proceedings of the ARRAY 2018, Philadelphia, PA, USA Ed. ACM, 2018. 11 - 17.

BibTeX: Download