[Stackless] Santa concurrency problem

Carlos Eduardo de Paula carlosedp at gmail.com
Mon Mar 26 21:55:59 CEST 2007


What is taking a hit on CPU is the ManageSleepingTasklets tasklet, it
gets that usage in its loop.

What I can do for throttling the cpu usage is put a time.sleep(0.001)
inside the while loop, with it we can have a decent precision on time
(1 milisecond) and having the CPU at low usage...

Maybe Richard can help us out about a cleaner solution on this...

Carlos

On 3/26/07, Santiago Gala <sgala at apache.org> wrote:
> El lun, 26-03-2007 a las 15:46 -0300, Carlos Eduardo de Paula escribió:
> > Hello Brian,
> >
> > Based on your code, I adapted it to an object oriented approach.. the
> > functionality is the same but it looks "cleaner" for me... :)
> >
> > Its a great example and if you would permit, I can add it to the
> > stackless examples project. (Both approaches if you want).
> >
> > The code is here:        http://dpaste.com/hold/7433/
> >
>
> Something I don't completely understand.
>
> I have not yet tested the haskell version ,but I did it with the erlang
> one, and both stackless versions.
>
> While the erlang version was not even noticeable in top, taking
> negligible CPU time, both stackless versions were spinning to 100% CPU
> (of one core, i.e. 50% system CPU time).
>
> Is that a bug in the stackless versions, in my setup, or what? given
> that modern CPUs are bound to shut down if too hot, and the the erlang
> looked faster to me, it looks like there is a bug either in stackless or
> in the implementation.
>
> Regards
> Santiago
>
> > Best regards,
> >
> > Carlos
> >
> > On 3/25/07, Brian Zimmer <bzimmer at ziclix.com> wrote:
> > > Hello,
> > >
> > > I've been using Python for years but only recently started using
> > > Stackless.  One of the current concurrency topics is the paper written
> > > by Simon Peyton-Jones about STM in which he presents a concurrency
> > > problem and provides Haskell code to solve it.  The Erlang list then
> > > included a version in Erlang demonstrating a shorter, and perhaps more
> > > readable, solution to the problem.  I'm including my Stackless version
> > > as a comparison and also wish feedback on my use of Stackless since it
> > > was my first stab at it.  I was thrilled to see I could schedule 10K
> > > elves without a problem.
> > >
> > > The top of the Erlang code has a good description of the problem.
> > >
> > > Haskell:
> > > http://research.microsoft.com/%7Esimonpj/papers/stm/#beautiful
> > > Erlang:    http://www.cs.otago.ac.nz/staffpriv/ok/santa/santa.erl
> > > Stackless: http://www.ziclix.com/software/santa.txt
> > >
> > > thanks, brian
> > >
> > >
> > > _______________________________________________
> > > Stackless mailing list
> > > Stackless at stackless.com
> > > http://www.stackless.com/mailman/listinfo/stackless
> > >
> >
> > _______________________________________________
> > Stackless mailing list
> > Stackless at stackless.com
> > http://www.stackless.com/mailman/listinfo/stackless
>
>

_______________________________________________
Stackless mailing list
Stackless at stackless.com
http://www.stackless.com/mailman/listinfo/stackless



More information about the Stackless mailing list