[Haskell-cafe] [ANNOUNCE] haskell-mpi-1.0.0
dmitry at well-typed.com
Thu Dec 9 22:40:02 CET 2010
We are pleased to announce the release of haskell-mpi-1.0.0, a suite of
Haskell bindings to the C MPI library and convenience APIs on top of it.
MPI, the Message Passing Interface, is a popular communications protocol for
distributed parallel computing (http://www.mpi-forum.org/).
MPI applications consist of independent computing processes which share
information by message passing. It supports both point-to-point and
collective communication operators, and manages much of the mundane aspects
of message delivery. There are several high-quality implementations of MPI
available, all of which conform to the standard API specification (the
latest version of which is 2.2). The MPI specification defines interfaces
for C, C++ and Fortran, and bindings are available for many other
As the name suggests, Haskell-MPI provides a Haskell interface to MPI, and
thus facilitates distributed parallel programming in Haskell. It is
implemented on top of the C API via Haskell's foreign function interface.
Haskell-MPI provides three different ways to access MPI's functionality:
* A direct binding to the C interface (see
* A convenient interface for sending arbitrary serializable Haskell data
values as messages (see Control.Parallel.MPI.Simple).
* A high-performance interface for working with (possibly mutable) arrays
of storable Haskell data types (see Control.Parallel.MPI.Fast).
We do not currently provide exhaustive coverage of all the functions and
types defined by MPI 2.2, although we do provide bindings to the most
commonly used parts. In future we plan to extend coverage based on the needs
of projects which use the library.
The package is available from http://hackage.haskell.org/package/haskell-mpi.
Examples and comprehensive testsuite are included in the source
Code was tested on 32- and 64-bit platforms, with MPICH2 and OpenMPI. The
Fast API shows performance comparable to C, and the Simple API is generally
2-7 time slower due to (de)serialization overhead and necessity to issue
additional MPI requests behind the curtains in some cases.
Bernie Pope started this project as a rewrite of hMPI which was written by
Michael Weber and Hal Daume III. He was later joined by Dmitry Astapov,
working on the library as part of Well-Typed LLP's Parallel Haskell Project.
Development is happening on GitHub, in git://github.com/bjpop/haskell-mpi.
Please join in!
Dmitry Astapov, Bernie Pope
Well-Typed LLP, http://www.well-typed.com/
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe