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 Jonathan.Hill@comlab.ox.ac.uk.
|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.|