Contents Logo

What is BSPonMPI?

BSPonMPI is a platform independent software library for developing parallel programs. It implements the BSPlib standard (with one small exception) and runs on all machines which have MPI. This last property is the main feature of this library and with this feature it distinguishes itself from other libraries such as the Oxford BSP Toolset and PUB.

What are MPI and BSPlib?

MPI stands for Message Passing Interface. This API should make it easy to write a parallel program. However in practice it is still very complicated, because the API exists of hundreds of functions. Also you need to be carefull avoiding typical parallel programming errors, such as deadlocks or indeterministic behaviour. Astonishingly there exists another API which is designed for this purpose and is very simple. It consists of only 20 primitives, which provide the same functionality and speed. BSPlib, as this other API is called, allows you to write parallel programs according to the BSP programming paradigm, see e.g. Parallel Scientific Computation: A Structured Approach using BSP and MPI by Rob H. Bisseling. This paradigm lets you program a parallel algorithm in a very structured manner, resulting in readable and fast code. BSPlib is already implemented for several supercomputers and pc clusters, but as it is less popular than MPI, it is not implemented for all hardware platforms. As engineers and mathematicians always want the highest percentage of computing power, an efficient implementation on top of MPI is imperative.

Why should I use it?

Currently there are two major BSPlib implementations: Oxford BSP Toolset and PUB. Both are implemented for specific hardware platforms (Cray T3E or SGI Origin, etc...) and they have a platform independent version on top of MPI. However the architecture of their software library is optimised for the use of hardware specific features. Building on top of MPI was never their primary objective. So if your hardware/software is not supported by one of these two libraries, then you should use BSPonMPI in combination with an MPI library.

BSPonMPI is very fast. Need proof? Examine the benchmarks.

Last time changed at: Sun, 23 Jul 2006 13:30:11 +0000