[MLton] Multicore CPU's and MLton

Matthew Fluet fluet@cs.cornell.edu
Tue, 5 Jul 2005 09:27:08 -0400 (EDT)

> > > Multi-core systems with lots of concurent threads seem to be the 
> > > future.
> > 
> > I'll believe it when I see it.  
> Try any number of websites.  This future is very much now.  
> It is typical to have 100's of users submitting web requests with a 1-1
> correspondence between thread <-> request (even this is changing) where
> dozens of those threads are all zipping concurrently through the same
> action handler.  I am sure multi-processor based development paradigm
> would be a nightmare and a non-SMP aware system would suffer from the
> additional kludges to achieve equivalent scalability.

Thanks everyone for the interesting discussion.  There were a lot of good
points, but my scepticism remains.  Essentially, Ray put forward, and
others (to varying degrees) agreed, that web services is the application
driving the need for multi-core/processor systems. (I'll touch on
Neophytos' application further below.)  And, this is my fundamental point
of contention -- enterprise web-services is not an application that
warrants a marketing campaign that appears to be gearing up to the point
where it will be trying to convince every home desktop user that they need
a multi-core system.  (Notwithstanding the somewhat sarcastic, though
somewhat founded, comments that suggest that the home user needs a second
core just to run the continuous virus/spy/ad blocking applications that
will be necessary to survive in the increasingly infested waters of the

Now, there may well be other reasons that chips (and, more importantly, 
marketing) have gone multi-core, but they still aren't clear to me.  I'm 
sure there are applications that will make use of it, but what I really 
object to is this growing ideology that _every_ application must make use 
of it.

I also think that Ray and company indirectly hit on a very important
point, noting the difficulty with which OO was adapted to the web world.  
Namely, that attempting to shoehorn an existing language into a new
paradigm almost invevitably leads to immense frustration, if not outright
failure.  Again, this is where I see the friction between marketing and
reality -- the marketing has led to a frenzy of "How/When will
MLton/OCaml/Haskell be multi-core ready?" posts, when history seems to
suggest that such an endeavor is a difficult proposition at best.

Neophytos put forward another multi-X application: simulation (in his 
case, finance, but I think the argument applies equally well to other 
simulated domains).  Again, I don't see this as an application that every 
computer user needs, though it is quite a bit more tenable than enterprise 
web service.  And I think that Neophytos' point about the "in-your-face" 
parallelizablity of his application is pertinant: we as an industry are 
much more likely to make progress designing languages that let a 
programmer express the obvious parallelism in their application (e.g., 
Sun's research language Fortress), than we are attempting to find "hidden" 
parallelism in a fundamentally sequential language.

Thanks again for all the insights.  While I remain a little sceptical, I 
am well aware that this is not a field that rewards hard-lined scepticism.  
I do believe that this is an exciting time.