hMPI is an acronym for HaskellMPI. It is a Haskell binding conforming to MPI (Message Passing Interface) standard 1.1/1.2 (LAM and MPICH, which are both implementations of the standard, are supported)
In contrast to GpH, with hMPI the programmer is in full control over the communication between the nodes of a cluster, and thus, also fully responsible for which node receives what data.
It is possible to send arbitrary Haskell types (everything you can write into a chunk of memory) via hMPI, although the programmer has to provide a method how to "(de)serialize" the data for any non-primitive type, for example user-defined algebraic data types.
The documentation is a bit sparse currently, so users should be somewhat experienced with MPI.
NOTE: development on hMPI has pretty much stalled. I haven't worked on it for a long time, and it is unlikely that this will change anytime soon. I am not even sure that it will compile with newer GHC releases (say, 5.00 and above; the FFI was changing while I wrote it)...
Releases of hMPI: