Automatic Mapping of Array Operations to Specific Architectures

Simon Andreas Frimann Lund, Mads Ruben Burgdorff Kristensen, Brian Vinter

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 languageEnglish
Title of host publication2016 Sixth International Workshop on Domain-Specific Languages and High-Level Frameworks for High Performance Computing
Place of PublicationSalt Lake City, USA
PublisherIEEE
Publication date27 Jan 2017
Chapter16689245
DOIs
Publication statusPublished - 27 Jan 2017

Fingerprint

Dive into the research topics of 'Automatic Mapping of Array Operations to Specific Architectures'. Together they form a unique fingerprint.

Cite this