Contributed software

The purpose of this page is to provide a repository of BSPlib programs. These programs are either: (1) purely educational programs which are intended to help new users develop BSPlib programs; (2) subroutine libraries which the community at-large may find useful.

To submit software to this page, please mail

BSPlib examples Example programs from the BSPlib document.
BSPPACK Rob Bisseling
BSPPACK_EDU is a library of numerical algorithms written in C according to the BSP model. The programs are meant for teaching: they give examples of portable parallel numerical programs. The trade-off between clarity/brevity on the one hand, and efficiency on the other hand is in favour of clarity/brevity.
Bspprobe Jonathan Hill bspprobe is a program that determines the BSP parameters s, l, and g of a machine. Summaries of the BSP parameters for a number of parallel machines can be found here.
Sample sorting Ronald Sujithan A postscript document containing the source and description of the algorithm can be found here.
Large scan Jonathan Hill Partial sums of a global array containing n values which has been distributed among p processes (where n>p). A postscript document containing the source and description of the algorithm can be found here.
Mat mult Mark Goudreau Matrix-matrix multiply.
Primitive operations Alex Gerbessiotis Primitive operations implemented include variants of broadcasting (two-phase, tree-based) and parallel prefix (two-phase, d-ary tree). See also the BSP tutorial material for a discussion of these algorithms.
Mat mult Alex Gerbessiotis A number of BSP algorithms have been implemented on top of BSPlib for matrix multiplication. These include a memory inefficient one suggested by L.G.Valiant (C.ACM 33(8),pp103-111,Aug 1990) and two variants of a straightforward memory efficient version of it.
Matrix algs Alex Gerbessiotis Gauss-Jordan based matrix inversion and LU decomposition algorithms have been implemented on top of the Oxford BSPlib toolset for educational purposes. A generalized scattered distribution of the input matrix among the processors is assumed and implementation of these algorithms under a wrapped mapping (an instance of generalized scattered) distribution has also been separately and directly implemented.
BSPscheduler Radu Calinescu BSPscheduler is a menu-driven tool for the automatic parallelisation of nested loops in the bulk synchronous parallel (BSP) model of parallel computation. The schedular generates C plus BSPlib code.

Last updated: Feb 9th 1998