Vats, Islands, and Collections: Finding cheap parallelism

ungar at ungar at
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!

- David

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
> cores).
> 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.
> Regards,
> Sam
> 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
> <<Hebrews 11:6, Proverbs 3:5-6, Romans 1:16-17, I Corinthians 1:10>>
>             Matthew Fulmer
>             <tapplek at
> m>                                                         To
>             Sent by:                  The general-purpose Squeak
>             squeak-dev-bounce         developers list
>             s at lists.squeakfou         <squeak-dev at lists.squeakfoundation 
> .
>                  org>
>                                                                        cc
>             01/24/2008 01:34                                       
> Subject
>             AM                        Vats, Islands, and Collections:
>                                       Finding cheap parallelism
>             Please respond to
>                    The
>              general-purpose
>             Squeak developers
>                   list
>             <squeak-dev at lists
>             .squeakfoundation
>                   .org>
> 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 =
> island).
> 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 --
> Help improve Squeak Documentation:

More information about the Squeak-dev mailing list