Abstract
The bulk synchronous parallel (BSP) model, as well as parallel programming interfaces based on BSP, classically target distributed-memory parallel architectures. In earlier work, Yzelman and Bisseling designed a MulticoreBSP for Java library specifically for shared-memory architectures. In the present article, we further investigate this concept and introduce the new high-performance MulticoreBSP for C library. Among other features, this library supports nested BSP runs. We show that existing BSP software performs well regardless whether it runs on distributedmemory or shared-memory architectures, and show that applications in MulticoreBSP can attain high-performance results. The paper details implementing the Fast Fourier Transform and the sparse matrix-vector multiplication in BSP, both of which outperform state-of-the-art implementations written in other shared-memory parallel programming interfaces. We furthermore study the applicability of BSP when working on highly non-uniform memory access architectures.
Original language | English |
---|---|
Pages (from-to) | 619-642 |
Number of pages | 24 |
Journal | International Journal of Parallel Programming |
Volume | 42 |
Issue number | 4 |
DOIs | |
Publication status | Published - 1 Jan 2014 |
Keywords
- Bulk synchronous parallel
- Fast Fourier transform
- High-performance computing
- Shared-memory parallel programming
- Software library
- Sparse matrix-vector multiplication