Concurrency and Parallelism in Python
One Day Advanced Workshop


Due to its comprehensiveness and ease-of-use, Python is one of the fastest-growing languages for all kinds of applications, and especially for science, engineering, and data analysis. As datasets grow larger and technical problems become more complex, people start looking for ways to make their computations run faster, such as multithreading and multiprocessing. Many people don’t seem to realize that although multithreading works differently in Python than in other languages (due largely to Python’s Global Interpreter Lock, or GIL), Python nonetheless does support powerful techniques for concurrency and parallel computing. In this one-day workshop, we explain how the GIL works (and why), introduce a number of concurrency techniques that allow you to increase the computational performance of Python programs, and discuss common pitfalls and best practices.

Concurrency and Parallelism in Python

Key topics covered include:

  • Introduction to parallelism and concurrency
  • Basic tools and best practices for parallelism in Python: Multithreading, multiprocessing, and the GIL
  • Non-CPU-bound parallelism: Parallelizing I/O-bound problems
  • The GIL and C-extensions: Releasing the GIL in custom C and Cython code
  • NumPy and the GIL
  • Coroutines


  • Intermediate to advanced Python programming experience required: at a minimum, participants should be very comfortable with the Python standard language (data structures, control flow, functions, modules, packages, file I/O, and so on.
  • Familiarity with concurrency, parallelism, and/or multiprocessing from other languages such as Java, C, C++, or another is recommended, but not required.

Contact Us

Interested in an advanced workshop topic?
Fill out the form to be updated about
future sessions.