Abstract
Array-oriented programming has been around for about thirty years and provides a fundamental abstraction for scientific computing. However, a wealth of popular programming languages in existence fail to provide convenient highlevel abstractions and exploit parallelism. One reason being that hardware is an ever-moving target.For this purpose, we introduce CAPE, a C-targeting Array Processing Engine, which manages the concerns of optimizing and parallelizing the execution of array operations. It is intended as a backend for new and existing languages and provides a portable runtime with a C-interface.The performance of the implementation is studied in relation to high-level implementations of a set of applications, kernels and synthetic benchmarks in Python/NumPy as well as lowlevel implementations in C/C++. We show the performance improvement over the high-productivity environment and how close the implementation is to handcrafted C/C++ code.
Original language | English |
---|---|
Title of host publication | 2016 Sixth International Workshop on Domain-Specific Languages and High-Level Frameworks for High Performance Computing |
Place of Publication | Salt Lake City, USA |
Publisher | IEEE |
Publication date | 27 Jan 2017 |
Chapter | 16689245 |
DOIs | |
Publication status | Published - 27 Jan 2017 |