[Python-Dev] Summing up

Nick Coghlan ncoghlan at gmail.com
Wed May 19 05:20:36 CEST 2010

On 19/05/10 10:35, David Beazley wrote:
> Antoine,
> This is a pretty good summary that mirrors my thoughts on the GIL
> matter as well.   In the big picture, I do think it's desirable for
> Python to address the multicore performance issue--namely to not have
> the performance needlessly thrashed in that environment.   The
> original new GIL addressed this.
> The I/O convoy effect problem is more subtle.   Personally, I think
> it's an issue that at least merits further study because trying to
> overlap I/O with computation is a known programming technique that
> might be useful for people using Python to do message passing,
> distributed computation, etc.   As an example, the multiprocessing
> module uses threads as part of its queue implementation.  Is it
> impacted by convoying?  I honestly don't know.  I agree that getting
> some more real-world experience would be useful.

My takeaway from this discussion is that:

A. we should leave the new GIL in 3.2 in its current (relatively) simple 
form for now, keeping the various patches in issue 7946 in our back 
pocket if someone finds real world examples of the convoying effect 
discussed there. The idea here being that we shouldn't complicate the 
implementation without some solid evidence that doing so is actually 
necessary for real world workloads.

B. some more thought should be given to incorporating the new GIL into 
2.7. However, this requires two things:
  - an update to the patch in 7753 to either retain the old GIL for 
platforms not supported by the new GIL or else to make the new GIL a 
configure option
  - Benjamin accepting that patch (as it would likely mean adding 
another beta release to the cycle)

In the absence of an updated version of the 7753 patch, backporting the 
new GIL to 2.7 isn't really a serious option.


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Python-Dev mailing list