[MLton] multicore MLton

Daniel Spoonhower spoons at cs.cmu.edu
Tue Mar 4 08:08:46 PST 2008


Hi, all.

I've written occasionally in this list about my work on a version of
MLton that supports parallel execution on multiple cores or processors.
I'm not ready to call it a "release," but I wanted to let you all know
that the current state of my work is now checked in on the
shared-heap-multicore branch (and will continue to be updated).  Some
MLton extensions and a few parts of the basis are broken, but I've been
using it to write a number of parallel programs.  This is a work in
progress, but I would still welcome comments or suggestions.

As the branch names indicates, this version of multicore MLton uses a
shared heap.  This design choice (among many others) was taken with the
goal of minimizing the changes to the current version of MLton.  I
haven't implemented any form of parallel or concurrent collection yet,
and so you won't see any speedup for programs that spend a lot of time
in the collector.

I've built and tested this version with Linux on Intel 32- and 64-bit
processors (Core and Core 2 specifically).  If someone is interested in
a binary on one of these platforms, please email me personally and I
will make one available.

The README.multimlton file contains some notes for programmers.  For
better or worse, the best documentation for MLton hackers is the code
itself.  I've tried to structure the commits so that each one describes
only one feature or change, but of course there is some leakage between
these commits.  Perhaps the best way to look at the code is with one eye
on the most recent version and one eye on the Subversion log.

I tried to do as much of the work as I could in SML.  Thus changes to
the runtime are only to 1) ensure existing functionality (e.g. GC) is
thread-safe and 2) provide a single parallel primitive.  The remaining
code, including the schedulers and the parallel interfaces intended for
programmers, is written in SML and found in basis-library/parallel.


--djs


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
Url : http://mlton.org/pipermail/mlton/attachments/20080304/95584520/signature.pgp


More information about the MLton mailing list