EPISODE 03

The Free Lunch Is Over

2005–2012

PyCon Atlanta, February 2010.

David Beazley walks on stage with graphs of a two-thread program running slower on two cores than one. The room goes quiet.

The World

The Pressure

The Response

The Fight

From:
SOURCE-NEEDED
Date:
SOURCE-NEEDED
Subject:
SOURCE-NEEDED — Beazley, Inside the Python GIL (ChiPy 2009)
SOURCE-NEEDED
From:
SOURCE-NEEDED
Date:
SOURCE-NEEDED
Subject:
SOURCE-NEEDED — Beazley, Understanding the Python GIL (PyCon 2010)
SOURCE-NEEDED
From:
SOURCE-NEEDED
Date:
SOURCE-NEEDED
Subject:
SOURCE-NEEDED — python-dev thread: the new GIL / convoy effect
SOURCE-NEEDED

convoy-effect bug number[VERIFY]

From:
SOURCE-NEEDED
Date:
SOURCE-NEEDED
Subject:
SOURCE-NEEDED — gevent vs Twisted flame thread
SOURCE-NEEDED
From:
SOURCE-NEEDED
Date:
SOURCE-NEEDED
Subject:
SOURCE-NEEDED — field report: gevent locking bug, 1M+ req/day
SOURCE-NEEDED
CPU19912006

1991: one core. The lock passes around — 100% utilization. The GIL was the right call.

2006: the free lunch ends. The same lock dance on four cores — utilization collapses to 25%.

A metaphor, not a scheduler simulation.

Why Your Code Looks Like This

Sources

  • Sutter’s essay — SOURCE-NEEDED
  • Beazley’s two GIL talks — SOURCE-NEEDED
  • PEP 371 — SOURCE-NEEDED
  • Unladen Swallow retrospective — SOURCE-NEEDED
  • gevent announcement post — SOURCE-NEEDED