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
Series Lecture Notes in Computer Science
Conference European Conference on Parallel Processing
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