[gambit-list] Qwaq releases Hydra multi-core Squeak VM « The

Blake Winton bwinton at latte.ca
Thu Feb 28 14:03:07 EST 2008


Andrew Lentvorski wrote:
> Blake Winton wrote:
>> My understanding (as a long time Python user) is that Python isn't 
>> interested in the billion-threads "solution" to multi-processing, 
>> (Guido seems to think, and I agree with him, that multi-threaded 
>> programs are too hard/impossible to get correct) and would rather see 
>> a different "fix" for the problem, whatever that may be.  
>> Shared-nothing/Multiple-processes seems like a contender.
> 
> Starting up multiple Python processes is *very* heavyweight.
> Communicating between those processes is also heavyweight.
> 
> The Python "solution" of starting multiple processes and talking through 
> sockets is, quite simply, garbage.

Let's take a step back here.  I'm not Python.  Saying that something may be a 
contender is a far cry from calling it a "solution".  I never said that the 
processes would communicate through sockets.  (Unix pipes or shared memory would 
be far better for things on the same box!)  Neither of us has any idea what the 
startup time of Python will be in the future, nor how heavyweight inter-process 
communication will be.

You seem to have an axe to grind, and while I appreciate that none of the 
current languages do concurrency particularly well, I think you've missed the 
mark in this particular criticism.

> The issue isn't "threads" or processes per se.  Threads or processes 
> could be fine, it's just that they're too heavy on an OS.  Look at all 
> the optimization and work people put in to make Apache scale on an OS.

Which OS is that?  ;)  You have to believe that, as processors gain more and 
more cores, OSes will react by making process creation and communication far 
lighter-weight, just like JVM implementors made synchronizing on objects lighter 
and lighter-weight as people used it more.

And if you're going to look at web servers, why not look at some which use 
Shared-nothing/Multiple-processes, like Yaws (found at http://yaws.hyber.org/ )? 
  They seem to have beaten the pants off of Apache, according to 
http://www.sics.se/~joe/apachevsyaws.html

> The real issue is that no current language except Erlang supports 
> message passing as an easy primitive between "threads".

So you do like Erlang's shared-nothing/multiple-processes approach?

> A solution to concurrency will be the issue that dethrones the current 
> languages.  I know that I'm looking.

I'm sure the entire programming language community will be interested in 
anything you find.  Seriously.  It seems to be considered one of the major 
problems of our age on every language-related mailing list I'm on, and everyone 
is looking for a halfway-decent answer.  (Not even _the_ answer, just something 
that's better than what we have now.)

Later,
Blake.



More information about the Gambit-list mailing list