Multy-core CPUs - communication among images
Petr Fischer
petr.fischer at praguesoft.cz
Thu Oct 18 15:36:05 UTC 2007
Hi. What do you recommend for communication among running images?
RemoteMessagingToolkit (RMT)?
Remote smalltalk (rST)?
Soap (ehm)?
other (not via. TCP/IP stack - for multiple images running locally)?
Thanks, p.
On 18.10.2007, at 16:18, Sebastian Sastre wrote:
> Hey this sounds a an interesting path to me. If we think in nature
> and it's
> design, that images could be analog to cells of a larger body.
> Fragmentation
> keep things simple without compromising scalability. Natural facts
> concluded
> that is more efficient not to develop few supercomplex brain cells
> but to
> develop zillions of a far simpler brain cells, this is, that are just
> complex enough, and make them able to setup in an inimaginable
> super complex
> network: a brain.
>
> Other approach that also makes me conclude this is interesting is
> that we
> know that one object that is too smart smells bad. I mean it easily
> starts
> to become less flexible so less scalable in complexity, less
> intuitive (you
> have to learn more about how to use it), more to memorize, maintain,
> document, etc. So it is smarter but it could happen that it begins
> to become
> a bad deal because of beign too costly. Said so, if we think in those
> flexible mini images as objects, each one using a core we can scale
> enourmusly and almost trivially in this whole multicore thing and
> in a way
> we know it works.
>
> Other interesting point is faul tolerance. If one of those images
> happen to
> pass a downtime (because a power faliure on the host where they where
> running or whatever reason) the system could happen to feel it
> somehow but
> not being in a complete faiure because there are other images to
> handle
> demand. A small (so efficient), well protected critical system can
> coordinate measures of contention for the "crisis" an hopefully the
> system
> never really makes feel it's own crisis to the users.
>
> Again I found this is a tradeof about when to scale horizontally or
> vertically. For hardware, Intel and friends have scaled vertically
> (more
> bits and Hz for instance) for years as much as they where
> phisically able to
> do it. Now they reached a kind of barrier and started to scale
> horizontally
> (adding cores). Please don't fall in endless discussions, like the
> ones I
> saw out there, about comparing apples with bannanas because they
> are fruits
> but are not comparable. I mean it's about scaling but they are 2
> different
> axis of a multidimensional scaling (complexity, load, performance,
> etc).
>
> I'm thinking here as vertical being to make one squeak smarter to
> be capable
> to be trhead safe and horizontal to make one smart network of N
> squeaks.
>
> Sometimes one choice will be a good business and sometimes it will
> be the
> other. I feel like the horizontal time has come. If that's true, to
> invest
> (time, $, effort) now in vertical scaling could happen to be have a
> lower
> cost/benefit rate if compared to the results of the investiment of
> horizontal scaling.
>
> The truth is that this is all speculative and I don't know. But I
> do trust
> in nature.
>
> Cheers,
>
> Sebastian Sastre
>
>> -----Mensaje original-----
>> De: squeak-dev-bounces at lists.squeakfoundation.org
>> [mailto:squeak-dev-bounces at lists.squeakfoundation.org] En
>> nombre de Ralph Johnson
>> Enviado el: Jueves, 18 de Octubre de 2007 08:09
>> Para: The general-purpose Squeak developers list
>> Asunto: Re: Multy-core CPUs
>>
>> On 10/17/07, Steve Wart <steve.wart at gmail.com> wrote:
>>> I don't know if mapping Smalltalk processes to native
>> threads is the
>>> way to go, given the pain I've seen in the Java and C# space.
>>
>> Shared-memory parallelism has always been difficult. People
>> claimed it was the language, the environment, or they needed
>> better training.
>> They always thought that with one more thing, they could "fix"
>> shared-memory parallelism and make it usable. But Java has
>> done a good job with providiing reasonable language
>> primitives. There has been a lot of work on making threads
>> efficient, and plenty of people have learned to write
>> mutli-threaded Java. But it is still way too hard.
>>
>> I think that shared-memory parallism, with explicit
>> synchronization, is a bad idea. Transactional memory might
>> be a solution, but it eliminates explicit synchronization. I
>> think the most likely solution is to avoid shared memory
>> altogether, and go with message passing.
>> Erlang is a perfect example of this. We could take this
>> approach in Smalltalk by making minimal images like Spoon,
>> making images that are designed to be used by other images
>> (angain, like Spoon), and then implementing our systms as
>> hundreds or thousands of separate images.
>> Image startup would have to be very fast. I think that this
>> is more likely to be useful than rewriting garbage collectors
>> to support parallelism.
>>
>> -Ralph Johnson
>>
>
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2435 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20071018/09faa818/smime.bin
More information about the Squeak-dev
mailing list
|