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.

Additional Metadata
Stakeholder QuSoft
Persistent URL dx.doi.org/10.1007/978-3-319-96983-1_37
Series Lecture Notes in Computer Science
Conference European Conference on Parallel Processing
Citation
Buurlage, J.W, Bannink, T, & Bisseling, R.H. (2018). Bulk: A modern C++ interface for bulk-synchronous parallel programs. In Euro-Par 2018: Parallel Processing (pp. 519–532). doi:10.1007/978-3-319-96983-1_37