Data Parallel Skeletons in Java

Ernsting Steffen, Kuchen Herbert

Research article (journal) | Peer reviewed

Abstract

In the past years, multi-core processors and clusters of multi-core processors have emerged to be promising approaches to meet the growing demand for computing performance. They deliver scalable performance, certainly at the costs of tedious and complex parallel programming. Due to a lack of high-level abstractions, developers of parallel applications have to deal with low-level details such as coordinating threads or synchronizing processes. Thus, parallel programming still remains a dificult and error-prone task. In order to shield the programmer from these low–level details, algorithmic skeletons have been proposed. They encapsulate typical parallel programming patterns and have emerged to be an effcient and scalable approach to simplifying the development of parallel applications. In this paper, we present a Java binding of our skeleton library Muesli. We point out strengths and weaknesses of Java with respect to parallel and distributed computing. A matrix multiplication benchmark demonstrates that the Java Generics deliver poor performance, thus the Java implementation is unable to compete with the C++ implementation in terms of performance.

Details about the publication

JournalProcedia Computer Science
Volume9
Page range1817-1826
StatusPublished
Release year2012
Language in which the publication is writtenEnglish
DOI10.1016/j.procs.2012.04.200
Keywordsalgorithmic skeletons; parallel programming; distributed programming; Java

Authors from the University of Münster

Ernsting, Steffen
Practical Computer Science Group (PI)
Kuchen, Herbert
Practical Computer Science Group (PI)