[MLton] Multicore CPU's and MLton

Wesley W. Terpstra wesley@terpstra.ca
Mon, 4 Jul 2005 12:43:58 +0200

On Sun, Jul 03, 2005 at 05:36:49PM -0400, Ray Racine wrote:
> - For web (and concurrent multiuser) based development native thread
> concurrency is essential for scalable applications. IMHO.

I completely disagree with this point.

> - It is yet a further shame that the Java threading model is based upon
> a mutex / critical section model, synchronized blocks, when much more
> sophisticated concurrent abstractions more along the lines of CML are
> easier to use and much less prone to deadlocks.

The best solution to deadlocks and lock-contention is to not have it.

Daniel C. Wang wrote:
> In the past MLton was on the same performance curve as all the single
> thread apps on the desktop. Now, if MLton can't exploit the concurrency,
> MLton is just going to be using available CPU resources less and less
> efficiently.

Are we talking about the compiler here? Or the compiled application?

I think MLton is just fine for developing extremely scaleable web services.
In fact, because continuations work so well at reimplementing state-threads,
I would wager that an MLton-based webservice would destroy anything you
compared it to, _especially_ on multi-processor machines.

As for MLton compiles being single-threaded, yeah, it sucks. However, MLton
compiles itself so quickly (~7min) on my machine, that it's not that big a
deal for me. The only time I get upset is when I need to do C-codegen!
(Since I have a powerbook, this is often)

Wesley W. Terpstra