On Wed, Mar 19, 2008 at 10:42 AM, Stefan Ring <[EMAIL PROTECTED]> wrote:
>
> On Mar 19, 2008 05:24 PM, Adam Olsen <[EMAIL PROTECTED]> wrote:
>
>  > On Wed, Mar 19, 2008 at 10:09 AM, Stefan Ring <[EMAIL PROTECTED]> wrote:
>  > > Adam Olsen <rhamph <at> gmail.com> writes:
>  > >
>  > > > Can you try with a call to sched_yield(), rather than nanosleep()?
>  > >  > It
>  > >  > should have the same benefit but without as much performance hit.
>  > >  >
>  > > > If it works, but is still too much hit, try tuning the
>  > >  > checkinterval
>  > >  > to see if you can find an acceptable throughput/responsiveness
>  > >  > balance.
>  > >  >
>  > >
>  > > I tried that, and it had no effect whatsoever. I suppose it would
>  > >  make an effect
>  > > on a single CPU or an otherwise heavily loaded SMP system but that's
>  > >  not the
>  > >  secnario we care about.
>  >
>  > So you've got a lightly loaded SMP system?  Multiple threads all
>  > blocked on the GIL, multiple CPUs to run them, but only one CPU is
>  > active?  I that case I can imagine how sched_yield() might finish
>  > before the other CPUs wake up a thread.
>  >
>  > A FIFO scheduler would be the right thing here, but it's only a short
>  > term solution.  Care for a long term solution? ;)
>  >
>  > http://code.google.com/p/python-safethread/
>
>  I've already seen that but it would not help us in our current
>  situation. The performance penalty really is too heavy. Our system is
>  slow enough already ;). And it would be very difficult bordering on
>  impossible to parallelize Plus, I can imagine that all extension modules
>  (and our own code) would have to be adapted.
>
>  The FIFO scheduler is perfect for us because the load is typically quite
>  low. It's mostly at those times when someone runs a lengthy calculation
>  that all other users suffer greatly increased response times.

So you want responsiveness when idle but throughput when busy?

Are those calculations primarily python code, or does a C library do
the grunt work?  If it's a C library you shouldn't be affected by
safethread's increased overhead.


-- 
Adam Olsen, aka Rhamphoryncus
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to