[squeak-dev] The "correct" approach to multi-core systems.

Igor Stasenko siguctua at gmail.com
Sat Feb 23 03:20:43 UTC 2008


On 23/02/2008, Michael van der Gulik <mikevdg at gmail.com> wrote:
>
>
> On 2/22/08, Stephen Pair <stephen at pairhome.net> wrote:
> > I must say, this is a really impressive development.  I really think this
> is the right way to approach multi-core systems.
> >
> >
>
>
> I disagree about it being the right approach in the long term.
>
> In the short term, the Hydra VM allows the use of multiple cores without
> large changes to the core of Squeak, which is good and IMHO the right
> decision for a quick and reliable solution (for whoever Igor is doing his
> work for... Qwaq?). The disadvantage with the Hydra VM is that all
> inter-process communication needs to go through a pipe; this makes sharing
> objects and synchronising access while still getting good performance more
> difficult. I can't back up my claims yet; we'll see how Hydra VM works out.
>
> In the long term, a VM that can run its green threads (aka Process) on
> multiple OS threads (aka pthreads) should be the long-term goal.
>
> I can't imagine that hacking the VM with multiple processes, per-process
> state and a global VM lock for garbage collection and new object creation
> would be too difficult. The global VM lock
> would kill scalability and could make
> object creation slow, but it should still get some speedup on multi-cored
> CPUs. More advanced VMs with per-thread eden space would take a bit longer
> to write.
>

The major challenge with multi-core over single shared object memory
is writing GC, because GC is the most complex part of squeak VM. Now
imagine adding concurrent-aware features to it..
When you'll have such GC, the rest will look like piece of cake :)

P.S. Global lock suck, you need to pick something less disastrous :)
I read some papers describing run-time GCs and background GCs, running
in separate thread. The question is, that adopting them to current
object model may be impossible without changing the model itself.

> Gulik.
>
> --
> http://people.squeakfoundation.org/person/mikevdg
> http://gulik.pbwiki.com/
>
>
>


-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list