Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Larry Hastings - Removing Python's GIL: The Gilectomy - PyCon 2016

    PyCon 2016

    5 HN recommenders · recommended in 8 months, 2016–2023

    YouTube

    32:07 · 49K views · Jun 1, 2016

    Larry Hastings explains what Python's GIL is, what problems it solves and how it works, and presents his Gilectomy project to remove it, including the performance and C-extension obstacles.

    The default reference in Python performance threads for why removing the GIL is hard.

    Software Engineering & LanguagesPython, Ruby & scripting languagesSoftware performance & optimizationOperating systems & kernels
    1. 46:10
      Understanding the Python GILDavid Beazley127K views • 14 years ago
    2. 1:13:53
      Raymond Hettinger, Keynote on Concurrency, PyBay 2017SF Python161K views • 9 years ago
    3. 59:11
      How to Speed up a Python Program 114,000 times.InfoQ171K views • 13 years ago
    4. 34:55
      "Outperforming Imperative with Pure Functional Languages" by Richard FeldmanStrange Loop Conference98K views • 5 years ago
    5. 40:34
      Charlie Marsh: uv: An Extremely Fast Python Package ManagerJane Street108K views • 2 years ago
    6. 42:44
      Armin Ronacher - A Python for Future GenerationsEuroPython Conference6.2K views • 9 years ago
    7. 49:55
      How Python was Shaped by leaky Internals, Armin Ronacher, Flask frameworkВидео с мероприятий {speach!20K views • 10 years ago
    8. 47:34
      RailsConf 2011: Aaron Patterson, "Double Dream Hands: So Intense!"O'Reilly26K views • 15 years ago
    9. 57:05
      Keynote: Begin...End?David Beazley9.5K views • 5 years ago
    10. 1:01:45
      A Talk Near the Future of Python (a.k.a., Dave live-codes a WebAssembly Interpreter)David Beazley26K views • 7 years ago
    11. 22:41
      "Clean" Code, Horrible PerformanceMolly Rocket1.2M views • 3 years ago
    12. 28:34
      RailsConf 2016 - Rails to Phoenix by Brian CardarellaConfreaks12K views • 10 years ago
    13. 1:13:41
      CppCon 2014: Chandler Carruth "Efficiency with Algorithms, Performance with Data Structures"CppCon235K views • 12 years ago
    14. 18:41
      Refterm Lecture Part 1 - Philosophies of OptimizationMolly Rocket93K views • 5 years ago
    15. 26:34
      Shared memory parallelism in Julia | Kiran Pamnany | Cambridge Julia Meetup (May 2018)The Julia Programming Language6.8K views • 8 years ago
    16. 52:40
      Keynote. Professor Steven G. Johnson | JuliaCon 2019The Julia Programming Language18K views • 7 years ago
    17. 38:47
      RailsConf 2014 - All the Little Things by Sandi MetzConfreaks190K views • 12 years ago
    18. 1:01:04
      Introduction to Julia - Part 1 | SciPy 2014 | David SandersEnthought80K views • 12 years ago
    19. 25:52
      Halide TalkAndrew Adams53K views • 12 years ago
    20. 48:51
      Transforming Code into Beautiful, Idiomatic PythonNext Day Video1.1M views • 13 years ago

    11 comments from Hacker News

    1. @gshulegaardAug 2017· in “Let's Remove the Global Interpreter Lock”

      I feel like the GIL is, at this point, Python's most infamous attribute. For a long time I thought it was also the biggest flaw with Python...but over time I care less and less about it. I think the first thing to realize is that single-threaded performance is often significantly better with the GIL than without it. I think Larry Hasting's first Gilectomy talk was extremely insightful (about the GIL in general and about performance when removing the GIL): this video I am not sure I would, personally, trade single-threaded performance for enabling multi-threaded applications. I view Python as a high-level rapid prototyping language that is well suited for business logic and glue code. And for that type of workload I would value single-threaded performance over support for multi-threading. Even now, a year later, the Gilectomy project is still slightly off performance-wise (although it looks really really close :) ): [LINK] As noted elsewhere, multi-processing offers adequate parallelization for this type of logic. Also, coroutines and async libraries such as gevent and asyncio offer easily approachable event loops for maximizing single-threaded resource utilization. It's true that multi-processing is not a replacement for multi-threading. There definitely are tasks and workloads where multi-processing and its inherent overhead make it unsuitable as a solution. But for those tasks, I question whether or not Python itself (as an interpreted, dynamically typed language) is suitable.

      Strongly recommendsView on HN
    2. @zbentleyOct 2018· in “Questions”

      this video Or search “gilectomy” on LWN. Or check out stackless etc.; it turns out removing the GIL technically is historically one of the easier parts of removing the GIL entirely. It sounds like your main problem is with python’s GC model. Reference counting doesn’t have to be thread-unsafe, but in scripting/interpreted-ish languages that want their threading story to involve seamless (I.e. no special syntax unless you want it, it’s on you not to blow off your foot) sharing of state between threads at will, like Python and Ruby, a GIL or equivalent is the norm. Sometimes it’s not as intrusive as python’s, but it does seem like a necessary (or at least very likely) implementation pattern for languages that want to provide that seamlessness. You can have thread-safe reference counted GC in a traditional scripting language, but that tends to come with a much less automatic threading/concurrency API. Perl 5 is an example of that category, and it is implemented in C.

      RecommendsView on HN
    3. @santiagobasultoJul 2023· in “Meta pledges Three-Year sponsorship for Python if GIL removal is accepted”

      There's a great talk by David Beazley (I don't remember which one) that he basically explains that removing the GIL isn't difficult at all. After all, it's just one lock. The issue is all the libraries and packages that were built around it. It's now been YEARS of building on top of the GIL. So anyways, PEP 703 is a a nice effort, but I doubt we (everyday mortals) can enjoy it. Meta, and big companies with a specialized team might be able to exploit it by making sure their entire stack is GIL-free. EDIT: My bad, the talk is from Larry Hastings: this video

      RecommendsView on HN
    4. @tedmistonJul 2016· in “Why is Python slow”

      See Larry Hastings' talk "Removing Python's GIL: The Gilectomy" from PyCon 2016. this video As well as his earlier talk "Python's Infamous GIL". [LINK] The GIL is a simple design that provides serious benefit to Python (end user) developers. There are plenty of options for working around this for parallelism, such as the built-in module multiprocessing.

      RecommendsView on HN
    5. @pfranzMar 2017· in “CPython internals: A ten-hour codewalk through the Python interpreter (2015)”

      Larry Hastings - Removing Python's GIL: The Gilectomy - PyCon 2016 this video (I'm pretty sure this is the video I'm thinking of) It's 30m, but worth it if you're interested. Not sure what progress has been made since then.

      RecommendsView on HN