Vats, Islands, and Collections: Finding cheap parallelism
ungar at mac.com
ungar at mac.com
Thu Jan 24 18:39:19 UTC 2008
Sam and Jecel,
Thank you both for forwarding this to me.
And I wanted to second Sam's message to anyone out there working on
multicore models or models for massively parallel computation from a
Smalltalkish point of view.
Let's exchange ideas and approaches as we explore this new territory!
On Jan 24, 2008, at 7:00 AM, Sam Adams wrote:
> Hi Matthew,
> That's very cool that you are working on multicore Squeak.
> Dave Ungar and I are just starting an effort in IBM Research on new
> VMs and
> programming models for large scale multicore systems (100's-1000's of
> We are putting together a 1024 core system based on 16 TIlera 64
> chips as a
> test bed. We are not anticipating ending up with a Squeak or Self
> VM, but
> something likely quite different.
> It would be interesting though to exchange ideas and approaches as you
> proceed in your research.
> Sam S. Adams, IBM Distinguished Engineer, IBM Research
> Asst: Brenda Robinson, tie 444-1497, outside 919-254-1497
> Mobile: 919-696-6064, email: ssadams at us.ibm.com
> <<Hebrews 11:6, Proverbs 3:5-6, Romans 1:16-17, I Corinthians 1:10>>
> Matthew Fulmer
> <tapplek at gmail.co
> m> To
> Sent by: The general-purpose Squeak
> squeak-dev-bounce developers list
> s at lists.squeakfou <squeak-dev at lists.squeakfoundation
> ndation.org org>
> 01/24/2008 01:34
> AM Vats, Islands, and Collections:
> Finding cheap parallelism
> Please respond to
> Squeak developers
> <squeak-dev at lists
> I'm going to be working on making squeak multi-core as part of
> my grad work. I have a bit of work to do before I get to the
> stage where I actually have to implement a parallel code model,
> but I am thinking about it in the abstract as a mental exercise
> for now. I will most likely use the vats/islands system used by
> SqueakELib and Croquet, as it has been validated.
> But I have a pressing concern: How could this be used to do what
> seems (to me and my mentors) to be the cheapest, simplest, most
> obvious parallelism extraction ever: get Collection>>do:,
> collect:, etc. to run one element per native thread (= vat =
> However, I may be overlooking copying costs (code, objects, or
> both) that make this more a naive parallelization than I expect.
> Assuming the elements are read-only for the duration of the
> enumeration (the common case), they can be safely copied
> willy-nilly to whatever vat they need to be in to run (or use
> shared memory if it is available and fast).
> Can this be done using vats? Does copying kill it? I get asked
> about this problem every time I talk about vats. Everyone seems
> to think this (loop-level parallelism) is the simplest, most
> fool-proof way to make things faster on a multi-core system, and
> give me funny looks when I don't have a quick answer on how this
> works in the vats model.
> Matthew Fulmer -- http://mtfulmer.wordpress.com/
> Help improve Squeak Documentation: http://wiki.squeak.org/squeak/808
More information about the Squeak-dev