Re: High-level MPI library

Matthew Fluet <[email protected]>
Newsgroups gmane.comp.lang.ml.mlton.user
Message-ID <CAMrhFL4o3=n_+ftjbd2ug_nADz-g75D3xi1v4p4SvQaOjc-2VQ@mail.gmail.com>
On Wed, Feb 12, 2014 at 1:43 AM, Ivan Raikov <[email protected]> wrote:
> Hi all,
>
>     I have created MLton bindings for a (small) subset of the MPI API, which
> are pretty low-level and using them in Standard ML can be rather awkward at
> times. The library is available here: https://github.com/iraikov/mpi-mlton
>
>    I am wondering if anyone has worked on or is interested in a high-level
> library for parallel distributed memory computing that is a bit more
> convenient to use in a functional programming setting. I realize there is
> Concurrent ML and various libraries for distributed computing, but so far I
> have been unable to locate a worthy alternative to the MPI collective
> operations (e.g. scatter and gather) which is where MPI really shines.
>
>    Some examples of high-level features that I would consider convenient
> would include e.g. automatic and efficient flattening of tree/list data
> structures onto the numerical array types supported by MPI, a functional
> interface for defining process topologies, more elegant ways for invoking
> scatter/gather/reduce, and perhaps some driver functions for common parallel
> computing patterns. So if anybody is working on or thinking about such
> things, some thoughts and opinions would be much appreciated. Thanks,

I believe that the MultiMLton project
(http://multimlton.cs.purdue.edu/mML/Welcome.html) has been drifting
towards distributed computing, but believe that they mostly expose the
Concurrent ML abstraction, without the collective operations.

Automatic and efficient flattening of tree/list data structures is
somewhat of an open problem.  At the very least, if you take the
flattening approach of NESL/Nepal/Data Parallel Haskell, then you
almost certainly need some amount of compiler support (though DHP is
able to get quite far with sophisticated type classes).  In the
Manticore project, we've argued that the full flattening approach
isn't necessarily a good fit for modern multicore computers; it was
better suited for very large vector machines.  I don't know about the
argument for or against full flattening for distributed computing.
Although, my suspicion is that the nested data parallelism approach
doesn't work very well in a distributed/MPI setting, since it may
require a lot of communication of these flat arrays.

-Matthew

To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].

------------------------------------------------------------------------------
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.