Multy-core CPUs - communication among images

Sebastian Sastre ssastre at seaswork.com
Thu Oct 18 16:54:36 UTC 2007


Hi Peter, look.. I've implemented RemotedObjects that is remake of rST
available in squeaksource but even with the peformance improvments of using
the sockets in full duplex I was hoping better results so I've freezed
development there. I can't say anything about the RMT nor SOAP because I had
no experience with them. Honestly I think we should consult someone with
more experience in squeak and network than me. Perhaps people envolved with
Croquet or Spoon can bring some experience/ideas/frameworks?

Cheers,

Sebastian Sastre

> -----Mensaje original-----
> De: squeak-dev-bounces at lists.squeakfoundation.org 
> [mailto:squeak-dev-bounces at lists.squeakfoundation.org] En 
> nombre de Petr Fischer
> Enviado el: Jueves, 18 de Octubre de 2007 12:36
> Para: The general-purpose Squeak developers list
> Asunto: Re: Multy-core CPUs - communication among images
> 
> 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
> >>
> >
> >
> >
> 
> 




More information about the Squeak-dev mailing list