<div>Dear Haskellers,</div><div><br></div><div>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.</div><div><br></div><div>About MPI</div>

<div>---------</div><div><br></div><div>MPI, the Message Passing Interface, is a popular communications protocol for distributed parallel computing (<a href="http://www.mpi-forum.org/">http://www.mpi-forum.org/</a>).</div>

<div><br></div><div>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 programming languages. </div>

<div><br></div><div>About Haskell-MPI</div><div>-----------------</div><div><br></div><div>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&#39;s foreign function interface. Haskell-MPI provides three different ways to access MPI&#39;s functionality:</div>

<div>   * A direct binding to the C interface (see Control.Parallel.MPI.Internal).</div><div>   * A convenient interface for sending arbitrary serializable Haskell data values as messages (see Control.Parallel.MPI.Simple).</div>

<div>   * A high-performance interface for working with (possibly mutable) arrays of storable Haskell data types (see Control.Parallel.MPI.Fast).</div><div><br></div><div>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.</div>

<div><br></div><div>The package is available from <a href="http://hackage.haskell.org/package/haskell-mpi">http://hackage.haskell.org/package/haskell-mpi</a>. Examples and comprehensive testsuite are included in the source distribution. </div>

<div><br></div><div>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.</div>

<div><br></div><div>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&#39;s Parallel Haskell Project.</div>

<div><br></div><div>Development is happening on GitHub, in git://<a href="http://github.com/bjpop/haskell-mpi">github.com/bjpop/haskell-mpi</a>. Please join in!</div><div><br></div><div>Sincerely yours,</div><div>Dmitry Astapov, Bernie Pope</div>

<br clear="all"><br>-- <br>Dmitry Astapov<div><span style="font-family:arial, sans-serif;font-size:13px;border-collapse:collapse;color:rgb(80, 0, 80)">Well-Typed LLP, <a href="http://www.well-typed.com/" style="color:rgb(0, 0, 204)" target="_blank">http://www.well-typed.com/</a></span></div>

<br>