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