using queue

MRAB python at mrabarnett.plus.com
Fri Sep 4 09:36:12 EDT 2009


Tim Arnold wrote:
> "Jan Kaliszewski" <zuo at chopin.edu.pl> wrote in message 
> news:mailman.895.1251958800.2854.python-list at python.org...
>> 06:49:13 Scott David Daniels <Scott.Daniels at acm.org> wrote:
>>
>>> Tim Arnold wrote:
>>>> (1) what's wrong with having each chapter in a separate thread? Too 
>>>> much going on for a single processor?
>>> Many more threads than cores and you spend a lot of your CPU switching
>>> tasks.
>> In fact, python threads work relatively the best with a powerful single
>> core; with more cores it becomes being suprisingly inefficient.
>>
>> The culprit is Pythn GIL and the way it [mis]cooperates with OS
>> scheduling.
>>
>> See: http://www.dabeaz.com/python/GIL.pdf
>>
>> Yo
>> *j
>>
>> -- 
>> Jan Kaliszewski (zuo) <zuo at chopin.edu.pl>
> 
> I've read about the GIL (I think I understand the problem there)--thanks. In 
> my example, the actual job called for each chapter ended up being a call to 
> subprocess (that called a different python program). I figured that would 
> save me from the GIL problems since each subprocess would have its own GIL.
> 
> In the words of Tom Waits, " the world just keeps getting bigger when you 
> get out on your own".  So I'm re-reading now, and maybe what I've been doing 
> would have been better served by the multiprocessing package.
> 
> I'm running python2.6 on FreeBSD with a dual quadcore cpu. Now my questions 
> are:
> (1) what the heck should I be doing to get concurrent builds of the 
> chapters, wait for them all to finish, and pick up processing the main job 
> again? The separate chapter builds have no need for communication--they're 
> autonomous.
> (2) using threads with the target fn calling subprocess, a bad idea?
> (3) should I study up on multiprocessing package and/or pprocessing?
> 
> thanks for your inputs,
> 
You could adapt the threading solution I gave to multiprocessing; just
use the multiprocessing queue class instead of the threading queue
class, etc.



More information about the Python-list mailing list