Available Software
Mondriaan
Mondriaan software and papers.
Latest version 4.2 (September 14, 2017).
GPU Software
Developed by Bas Fagginger Auer.
Sawdoubler
SAWdoubler software and papers.
Latest version 1.0 (August 15, 2012).
Edupack
BSPedupack is a library of numerical algorithms written in C
according to the BSP model.
It uses the BSPlib standard library.
The "edu" in the name stands for educational.
The programs are intended for teaching:
they give examples of portable parallel numerical programs.
The tradeoff between clarity/brevity on the one hand,
and efficiency on the other hand is in favour of
clarity/brevity.
There is also an MPI version which teaches how to program
in bulk synchronous parallel style using the collective communications from MPI1
and the onesided communications from MPI2.
You guessed it, this package is called MPIedupack.
Both packages accompany the book:
Parallel
Scientific Computation: A Structured Approach using BSP and MPI,
by Rob H. Bisseling, Oxford University Press,
March 2004. ISBN 9780198529392.
Programs in BSPedupack: inner product "how to get started" with BSPlib;
BSP benchmark; dense LU decomposition; Fast Fourier Transform;
sparse matrixvector multiplication.
Programs in MPiedupack: equivalents of all the programs in BSPedupack.

The complete
BSPedupack package (tarfile, 101 kB), version 1.02,
released September 18, 2013.
History: version 1.02 fixes compiler warnings in bsplu.c, bspbench.c and bspmv_test.c.
version 1.01 fixes a memory leak in bspmv_test.c.

The complete
MPIedupack package (tarfile, 80 kB).
Official release: BSPedupack and MPIedupack version 1.0 (January 30, 2004).
This is freeware. Copyright reserved by the author, Rob Bisseling 2004,
but otherwise freely available and distributable under the
GNU General Public License .
To run the programs from BSPedupack you must have BSPlib installed.
A good version is BSPonMPI, avaialble from BSP worldwide
BSP worldwide.
To run the first four programs from MPIedupack you must have MPI1
installed. The fifth program uses onesided communications from MPI2.
Detailed contents of BSPedupack
README. Explains all.
bspinprod/mpiinprod.
A simple and small program which tells you how to get started with
writing BSP or MPI programs. It computes an inner product.
The BSP program shows the 12 most important BSPlib primitives
(out of 20) in action, including the direct memory access ones.
The MPI program shows the MPI setup and two collective communications
(broadcast and allreduce).
bspbench/mpibench.
A benchmarking program that gives you as the bottom line the
p, r, g, l of your computer, measured for puts (in the BSP case)
and for an alltoall collective communication (in the MPI case).
bsplu/mpilu.
An LU decomposition program using the 2D cyclic distribution.
bspfft/mpifft.
An FFT program that starts and ends with the cyclic distribution
and that performs a minimal number of communication supersteps,
most likely only one.
bspmv/mpimv.
A sparse matrixvector multiplication program.
Input uses Mondriaan partitioning.
BSP program uses gets and sends.
MPI program uses gets and accumulates from MPI2.
bspedupack.h/mpiedupack.h.
Header file for BSPedupack/MPIedupack.
bspedupack.c/mpiedupack.c.
Matrix and vector allocations with error messages
if no memory is available.
Makefile. Describes compilation.
PartitionSums
PartitionSums software Version 1.0 Released July 2, 2009
Software accompanying the paper
"Efficient calculation of partition sums for DNA/RNA hybridization"
by Matthijs G. A. van Dorp, Rob H. Bisseling, and Gerard Barkema,
submitted June 27, 2009.
See also
"The manystate partition sum in DNA and RNA
hybridization and its application to DNA microarrays ",
by Matthijs van Dorp, M.Sc. Thesis, Mathematical Institute and Institute of Theoretical Physics,
Utrecht University, July 2009,
70pp.
Documentation is available, see the
User Guide by Matthijs van Dorp.
This software is released under the GNU LGPL license.
MLIB
MLIB is a library written in Pascal for the simulation of
various scientific computations on a
Bulk Synchronous Parallel (BSP) computer.
For these simulations, it uses the uniform format
of sparse matrix vector multiplication.
For a detailed description, see
R. H. Bisseling and W. F. McColl,
Scientific Computing on Bulk Synchronous Parallel Architectures,
Preprint 836, Department of Mathematics, Utrecht University,
dec. 1993.
MLIB contains the following types of programs:
 Programs that generate various sparse matrices:
hyp.p, dense.p, random.p, md.p, mdr.p.
 A program that creates matrixindependent distributions:
mkd.p.
 Programs that create matrixdependent distributions:
mkdmd.p, mkdhyp.p.
 A program that computes the BSP cost of
a sparse matrix vector multiplication
for a given sparse matrix with a given Cartesian distribution:
mvst.p.
Use them in this order: 1; 2 or 3; 4.
For reasons of copyright we removed the random number generator
that we used (ran1 from Numerical Recipes in Pascal).
You have to plug in your favourite random number generator
wherever ran1 is called.
This occurs in random.p, md.p, mdr.p, mkd.p.
The software has run successfully on SUN workstations.
You may have to adapt the filehandling for your own system.
MLIB is avaliable as a
.
Disclaimer: this software is copyrighted by
R. H. Bisseling and W. F. McColl, 1993.
You can use and modify it freely.
Anything free, as usual, comes with no guarantee!
Last updated November 7, 2016.