[MLton] Multicore CPU's and MLton

Brent Fulgham bfulg@pacbell.net
Tue, 5 Jul 2005 13:48:16 -0700 (PDT)


--- Stephen Weeks <sweeks@sweeks.com> wrote:
> 
> I think that multi-core is a logical (even
> necessary) direction for chips to go.  But I think 
> that process-level parallelism is usually
> the way to take advantage of it.

I believe this is true as well.  What would be very
interesting to me would movement towards more of an
Erlang-style "cheap process" idea.

In Erlang (http://www.erlang.org), parallelism is
modeled as separate processes communicating through
message passing.  While message passing is obviously
not as cheap as shared memory, it has the advantage
of completely isolating separate threads of execution
such that failure in one does not cause failure in
another.

> [ ... ] It is easy to get inter-process
> parallelism with MLton.  Supporting intra-process 
> parallelism entails a lot of costs in several
> dimensions:
> 
>  * MLton developer time to add support
>  * complexity of MLton users' programming model
>  * run-time costs of executables due to contention

To this I would add the 'cost' of potentially unstable
programs.  While systems of parallel processes
communicating with message passing semantics are
fairly well understood, shared state in inter-process
development are very complex, and difficult to model
using current tools.

-Brent