BSPlib: The BSP programming library

Jonathan M D Hill, Bill McColl, Dan C. Stefanescu, Mark W. Goudreau, Kevin Lang, Satish B. Rao, Torsten Suel, Thanasis Tsantilas, Rob H. Bisseling

    Research output: Contribution to journalArticlepeer-review


    BSPlib is a small communications library for bulk synchronous parallel (BSP) programming which consists of only 20 basic operations. This paper presents the full definition of BSPlib in C, motivates the design of its basic operations, and gives examples of their use. The library enables programming in two distinct styles: direct remote memory access (DRMA) using put or get operations, and bulk synchronous message passing (BSMP). Currently, implementations of BSPlib exist for a variety of modern architectures, including massively parallel computers with distributed memory, shared memory multiprocessors, and networks of workstations. BSPlib has been used in several scientific and industrial applications; this paper briefly describes applications in benchmarking, Fast Fourier Transforms (FFTs), sorting, and molecular dynamics.

    Original languageEnglish (US)
    Pages (from-to)1947-1980
    Number of pages34
    JournalParallel Computing
    Issue number14
    StatePublished - Dec 1998


    • Bulk synchronous parallel
    • One-sided communication
    • Parallel communications library

    ASJC Scopus subject areas

    • Software
    • Theoretical Computer Science
    • Hardware and Architecture
    • Computer Networks and Communications
    • Computer Graphics and Computer-Aided Design
    • Artificial Intelligence


    Dive into the research topics of 'BSPlib: The BSP programming library'. Together they form a unique fingerprint.

    Cite this