[Stackless] Newbie questions

Konrad Hinsen hinsen at cnrs-orleans.fr
Mon Feb 17 12:12:20 CET 2003


On Sunday 16 February 2003 20:42, you wrote:

> > So when do task switches occur? Only when channel operations are called?
>
> Yes, or when you call schedule().

OK, that's at least a simple model, which is always a good idea.

> > But the object ids are not the same as the ones of the sent objects - as
> > I just discovered experimentally.
>
> Then either you or me must have made a mistake.
> The channels do not create any objects.

My current opinion is that you are right.

> > more "virtual" processors than real ones. Each real CPU measures the time
> > spent on dealing with each "virtual" CPU, and once in a while the real
> > CPUs exchange virtual CPUs among each other to equalize CPU load.
>
> Ok. With multiple processors, what about the GIL?

No problem, every real processor will run a separate Python process anyway.

> Ok, if you don't need total parallism yet, it is fine.
> Using many tasklets per CPU, and one Python process
> for very CPU might be some way.

That is exactly what I am planning to do. The additional virtual processes 
exist only for load balancing.

> It has been implemented for Stackless 1.0 by twinsun.
> With 2.0, it was too hard to support. 3.0 will get
> the stuff back that is needed for pickling.
> I don't know exactly when I get to this. Probably,
> when 3.0 is out, they will help with it.

OK, I'll follow the developments.

Konrad.




More information about the Stackless mailing list