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.

doi.org/10.1007/978-3-319-96983-1_37
Lecture Notes in Computer Science
European Conference on Parallel Processing
Computational Imaging

Buurlage, J.-W., Bannink, T., & Bisseling, R. (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