BSPlib is a small communications library for bulk synchronous parallel (BSP) programming which consists of only 20 basic operations. This paper presents the full de nition 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 using put or get operations, and bulk synchronous message passing. 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 scienti c and industrial applications; this paper brie y describes applications in benchmarking, Fast Fourier Transforms, sorting, and molecular dynamics. Key words: Bulk synchronous parallel, parallel communications library, one-sided communication.
Jonathan M. D. Hill, Bill McColl, Dan C. Stefanesc