On mercredi 06 août 2008, Kristofor Amundson wrote:

> I am writing a Python script that is performing lots of pixel-based
> image comparisons and I'm using PIL's PixelAccess object to do this. In
> order to improve my performance I've attempted to multi-thread the
> pixel access using Python's threading module.
>
> My problem is that I see little to no improvement in my performance
> with the threading, even when I process the images on a machine with 8
> CPU's. In fact, it only seems to utilize one CPU. Is this due to the
> GIL? I am wondering if there is a way for me to properly thread this to
> improve my performance.

Due to the global lock in python, threads can't be executed concurrently; 
you need to switch to processes. Someone proposed me to use 
the 'processing' module:

    http://pyprocessing.berlios.de

which will be in standard in future python versions. I didn't make tests 
yet, but this section seems interesting, and very simple to use:

    http://pyprocessing.berlios.de/doc/pool-objects.html

Hope this help.

-- 
    Frédéric

    http://www.gbiloba.org
_______________________________________________
Image-SIG maillist  -  Image-SIG@python.org
http://mail.python.org/mailman/listinfo/image-sig

Reply via email to