Bulk: A Modern C++ Interface for Bulk-Synchronous Parallel Programs

Publication date

2018-08-27

Authors

Buurlage, Jan WillemISNI 0000000517910091
Bannink, Tom
Bisseling, R.H.ISNI 0000000384208994

Editors

Torquati, Massimo
Aldinucci, Marco
Padovani, Luca

Advisors

Supervisors

Document Type

Part of book

License

Abstract

The bulk-synchronous parallel (BSP) programming model gives a powerful method for implementing and describing parallel programs. In this article we present Bulk, a novel interface for writing BSP programs in the C++ programming language that leverages modern C++ features to allow for the implementation of safe and generic parallel algorithms for shared-memory, distributed-memory, and hybrid systems. This interface targets the next generation of BSP programmers who want to write fast, safe, clear and portable parallel programs. We discuss two applications: regular sample sort and the fast Fourier transform, both in terms of performance, and ease of parallel implementation.

Keywords

Bulk synchronous parallel, sample sort, Fast Fourier transform, hybrid shared/distributed memory, Taverne, Theoretical Computer Science, General Computer Science

Citation

Buurlage, J W, Bannink, T & Bisseling, R H 2018, Bulk : A Modern C++ Interface for Bulk-Synchronous Parallel Programs. in M Torquati, M Aldinucci & L Padovani (eds), Euro-Par 2018 : Parallel Processing - 24th International Conference on Parallel and Distributed Computing, Proceedings. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 11014 LNCS, Springer, pp. 519-532, 24th International European Conference on Parallel and Distributed Computing, Euro-Par 2018, Turin, Italy, 27/08/18. https://doi.org/10.1007/978-3-319-96983-1_37, conference