Home > Research > Publications & Outputs > On the Parallel Programmability of JavaSymphony...

Links

Text available via DOI:

View graph of relations

On the Parallel Programmability of JavaSymphony for Multi-cores and Clusters

Research output: Contribution to Journal/MagazineJournal articlepeer-review

Published
Close
<mark>Journal publication date</mark>30/04/2019
<mark>Journal</mark>International Journal of Ad hoc and Ubiquitous Computing
Issue number4
Volume30
Number of pages18
Pages (from-to)247-264
Publication StatusPublished
Early online date31/03/19
<mark>Original language</mark>English

Abstract

This paper explains the programming aspects of a promising Java-based programming and execution framework called JavaSymphony. JavaSymphony provides unified high-level programming constructs for applications related to shared, distributed, hybrid memory parallel computers, and co-processors accelerators. JavaSymphony applications can be executed on multi-/many-core conventional and data-parallel architectures. JavaSymphony is based on the concept of dynamic virtual architectures, which allows programmers to define a hierarchical structure of the underlying computing resources and to control load-balancing and task-locality. In addition to GPU support, JavaSymphony provides a multi-core aware scheduling mechanism capable of mapping parallel applications on large multi-core machines and heterogeneous clusters. Several real applications and benchmarks (on modern multi-core computers, heterogeneous clusters, and machines consisting of a combination of different multi-core CPU and GPU devices) have been used to evaluate the performance. The results demonstrate that the JavaSymphony outperforms the Java implementations, as well as other modern alternative solutions.