Vats, Islands, and Collections: Finding cheap parallelism
Sam Adams
ssadams at us.ibm.com
Thu Jan 24 15:00:15 UTC 2008
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 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>
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 -- http://mtfulmer.wordpress.com/
Help improve Squeak Documentation: http://wiki.squeak.org/squeak/808
More information about the Squeak-dev
mailing list
|