Data Parallel Skeletons in Java

Ernsting Steffen, Kuchen Herbert


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.

Keywords
algorithmic skeletons; parallel programming; distributed programming; Java



Publication type
Research article (journal)

Peer reviewed
Yes

Publication status
Published

Year
2012

Journal
Procedia Computer Science

Volume
9

Start page
1817

End page
1826

Language
English

ISSN
1877-0509

DOI