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.
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