Clusters, grids and Squeak

Darren Hobbs darren.hobbs at gmail.com
Tue Apr 19 09:55:17 UTC 2005


Hi,

Loath as I am to continue in the multiprocess / multithreading vein,
I'm going to anyway :-)

We're starting to see machines like these appear in the market:
http://www.orionmulti.com/products/

There is a significant amount of hype & interest in clusters and grid
computing at the moment.  It seems the pendulum that swung towards
bigger faster servers during the web-boom is now starting to swing
back the other way as companies realise they have vast amounts of
computing power sitting idle on people's desks.

It seems clear that massive parallelism is on a rapid rise, and I
believe that there is scope for significant innovation in this area in
the next couple of years.

My opinion (nascent as it is) is that making the VM multithreaded at
the OS-level is probably not the best way to go, as it would break a
lot of code, and fundamentally change the behaviour of the scheduling
model.  I like the fact that the Smalltalk VM really is a virtual
machine, in the sense that its process management is implemented in
Smalltalk.

Having said that, I do think that it would be a significant coup for
Squeak and Smalltalk in general if a way was found to make it easy to
build applications that could make efficient use of a 96-way box :-)

I suspect that launching 96 images at the moment might be somewhat
unfeasible, as an out of the box image takes about 25 meg of memory,
so starting 1 per cpu would eat 2.4 Gigs before you've even started!

What might work is starting one headfull image to act as task
coordinator, and devise a way to launch a bunch of very cut-down
headless 'worker' images.  The kind of client code that I'm imagining
might look like this:

95 timesRepeat: [GridWorkerProcess new].
GridScheduler allWorkersDo:[MyComputeIntensiveGridTask new].

Obviously that is a simplistic example, but a general grid computing
framework could have many uses, including a native-Smalltalk
alternative to technologies like fastCGI for running web applications
on multiprocessor boxes.

I am cheerfully unfettered by any knowledge of how impossible this
idea might be, so thoughts and comments are sought!

Regards,

-Darren



More information about the Squeak-dev mailing list