A Composable Array Function Interface for Heterogeneous Computing in Java

Juan José Fumero, Michel Steuwer, Christophe Dubach

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract / Description of output

Heterogeneous computing has now become mainstream with virtually every desktop machines featuring accelerators such as Graphics Processing Units (GPUs). While heterogeneity offers the promise of high-performance and high-efficiency, it comes at the cost of huge programming difficulties. Languages and interfaces for programming such system tend to be low-level and require expert knowledge of the hardware in order to achieve its potential.

A promising approach for programming such heterogeneous systems is the use of array programming. This style of programming relies on well known parallel patterns that can be easily translated into GPU or other accelerator code. However, only little work has been done on integrating such concepts in mainstream languages such as Java.

In this work, we propose a new Array Function interface implemented with the new features from Java 8. While similar in spirit to the new Stream API of Java, our API follows a different design based on reusability and composability. We demonstrate that this API can be used to generate OpenCL code for a simple application. We present encouraging preliminary performance results showing the potential of our approach.
Original languageEnglish
Title of host publicationProceedings of ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming
Place of PublicationNew York, NY, USA
PublisherACM
Pages44-49
Number of pages6
ISBN (Print)978-1-4503-2937-8
DOIs
Publication statusPublished - 2014

Keywords / Materials (for Non-textual outputs)

  • Array programming, GPGPU, Patterns

Fingerprint

Dive into the research topics of 'A Composable Array Function Interface for Heterogeneous Computing in Java'. Together they form a unique fingerprint.

Cite this