Group Communication Patterns for High Performance Computing in Scala

Felix Palludan Hargreaves, Daniel Merkle, Peter Schneider-Kamp

Publikation: Bidrag til bog/antologi/rapport/konference-proceedingKonferencebidrag i proceedingsForskningpeer review

Resumé

We developed a Functional Object-Oriented Parallel framework (FooPar) for high-level high-performance computing in Scala. Central to this framework are Distributed Memory Parallel Data structures (DPDs), i.e., collections of data distributed in a shared nothing system together with parallel operations on these data.

In this paper, we first present FooPar's architecture and the idea of DPDs and group communications. Then, we show how DPDs can be implemented elegantly and efficiently in Scala based on the Traversable/Builder pattern, unifying Functional and Object-Oriented Programming.

We prove the correctness and safety of one communication algorithm and show how specification testing (via ScalaCheck) can be used to bridge the gap between proof and implementation. Furthermore, we show that the group communication operations of FooPar outperform those of the MPJ Express open source MPI-bindings for Java, both asymptotically and empirically.

FooPar has already been shown to be capable of achieving close-to-optimal performance for dense matrix-matrix multiplication via JNI. In this article, we present results on a parallel implementation of the Floyd-Warshall algorithm in FooPar, achieving more than 94% efficiency compared to the serial version on a cluster using 100 cores for matrices of dimension 38000 x 38000.
OriginalsprogEngelsk
TitelProceedings of the 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing
ForlagAssociation for Computing Machinery
Publikationsdato2014
Sider75-85
ISBN (Elektronisk)978-1-4503-3040-4
DOI
StatusUdgivet - 2014
Begivenhed3rd ACM SIGPLAN Workshop on Functional High-Performance Computing - Göteborg, Sverige
Varighed: 4. sep. 2014 → …
Konferencens nummer: 3

Konference

Konference3rd ACM SIGPLAN Workshop on Functional High-Performance Computing
Nummer3
LandSverige
ByGöteborg
Periode04/09/2014 → …

Fingeraftryk

Communication
Object oriented programming
Data structures
Specifications
Data storage equipment
Testing

Citer dette

Hargreaves, F. P., Merkle, D., & Schneider-Kamp, P. (2014). Group Communication Patterns for High Performance Computing in Scala. I Proceedings of the 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing (s. 75-85). Association for Computing Machinery. https://doi.org/10.1145/2636228.2636229
Hargreaves, Felix Palludan ; Merkle, Daniel ; Schneider-Kamp, Peter. / Group Communication Patterns for High Performance Computing in Scala. Proceedings of the 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing. Association for Computing Machinery, 2014. s. 75-85
@inproceedings{2189d9b73ce64779b7cc80ff0cc79902,
title = "Group Communication Patterns for High Performance Computing in Scala",
abstract = "We developed a Functional Object-Oriented Parallel framework (FooPar) for high-level high-performance computing in Scala. Central to this framework are Distributed Memory Parallel Data structures (DPDs), i.e., collections of data distributed in a shared nothing system together with parallel operations on these data.In this paper, we first present FooPar's architecture and the idea of DPDs and group communications. Then, we show how DPDs can be implemented elegantly and efficiently in Scala based on the Traversable/Builder pattern, unifying Functional and Object-Oriented Programming.We prove the correctness and safety of one communication algorithm and show how specification testing (via ScalaCheck) can be used to bridge the gap between proof and implementation. Furthermore, we show that the group communication operations of FooPar outperform those of the MPJ Express open source MPI-bindings for Java, both asymptotically and empirically.FooPar has already been shown to be capable of achieving close-to-optimal performance for dense matrix-matrix multiplication via JNI. In this article, we present results on a parallel implementation of the Floyd-Warshall algorithm in FooPar, achieving more than 94{\%} efficiency compared to the serial version on a cluster using 100 cores for matrices of dimension 38000 x 38000.",
author = "Hargreaves, {Felix Palludan} and Daniel Merkle and Peter Schneider-Kamp",
year = "2014",
doi = "10.1145/2636228.2636229",
language = "English",
pages = "75--85",
booktitle = "Proceedings of the 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing",
publisher = "Association for Computing Machinery",
address = "United States",

}

Hargreaves, FP, Merkle, D & Schneider-Kamp, P 2014, Group Communication Patterns for High Performance Computing in Scala. i Proceedings of the 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing. Association for Computing Machinery, s. 75-85, 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing, Göteborg, Sverige, 04/09/2014. https://doi.org/10.1145/2636228.2636229

Group Communication Patterns for High Performance Computing in Scala. / Hargreaves, Felix Palludan; Merkle, Daniel; Schneider-Kamp, Peter.

Proceedings of the 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing. Association for Computing Machinery, 2014. s. 75-85.

Publikation: Bidrag til bog/antologi/rapport/konference-proceedingKonferencebidrag i proceedingsForskningpeer review

TY - GEN

T1 - Group Communication Patterns for High Performance Computing in Scala

AU - Hargreaves, Felix Palludan

AU - Merkle, Daniel

AU - Schneider-Kamp, Peter

PY - 2014

Y1 - 2014

N2 - We developed a Functional Object-Oriented Parallel framework (FooPar) for high-level high-performance computing in Scala. Central to this framework are Distributed Memory Parallel Data structures (DPDs), i.e., collections of data distributed in a shared nothing system together with parallel operations on these data.In this paper, we first present FooPar's architecture and the idea of DPDs and group communications. Then, we show how DPDs can be implemented elegantly and efficiently in Scala based on the Traversable/Builder pattern, unifying Functional and Object-Oriented Programming.We prove the correctness and safety of one communication algorithm and show how specification testing (via ScalaCheck) can be used to bridge the gap between proof and implementation. Furthermore, we show that the group communication operations of FooPar outperform those of the MPJ Express open source MPI-bindings for Java, both asymptotically and empirically.FooPar has already been shown to be capable of achieving close-to-optimal performance for dense matrix-matrix multiplication via JNI. In this article, we present results on a parallel implementation of the Floyd-Warshall algorithm in FooPar, achieving more than 94% efficiency compared to the serial version on a cluster using 100 cores for matrices of dimension 38000 x 38000.

AB - We developed a Functional Object-Oriented Parallel framework (FooPar) for high-level high-performance computing in Scala. Central to this framework are Distributed Memory Parallel Data structures (DPDs), i.e., collections of data distributed in a shared nothing system together with parallel operations on these data.In this paper, we first present FooPar's architecture and the idea of DPDs and group communications. Then, we show how DPDs can be implemented elegantly and efficiently in Scala based on the Traversable/Builder pattern, unifying Functional and Object-Oriented Programming.We prove the correctness and safety of one communication algorithm and show how specification testing (via ScalaCheck) can be used to bridge the gap between proof and implementation. Furthermore, we show that the group communication operations of FooPar outperform those of the MPJ Express open source MPI-bindings for Java, both asymptotically and empirically.FooPar has already been shown to be capable of achieving close-to-optimal performance for dense matrix-matrix multiplication via JNI. In this article, we present results on a parallel implementation of the Floyd-Warshall algorithm in FooPar, achieving more than 94% efficiency compared to the serial version on a cluster using 100 cores for matrices of dimension 38000 x 38000.

U2 - 10.1145/2636228.2636229

DO - 10.1145/2636228.2636229

M3 - Article in proceedings

SP - 75

EP - 85

BT - Proceedings of the 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing

PB - Association for Computing Machinery

ER -

Hargreaves FP, Merkle D, Schneider-Kamp P. Group Communication Patterns for High Performance Computing in Scala. I Proceedings of the 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing. Association for Computing Machinery. 2014. s. 75-85 https://doi.org/10.1145/2636228.2636229