Thomas J. Fan
Thomas J. Fan is a Staff Software Engineer at Quansight Labs and is a maintainer for scikit-learn, an open-source machine learning library for Python. Previously, Thomas worked at Columbia University to improve interoperability between scikit-learn and AutoML systems. He is a maintainer for skorch, a neural network library that wraps PyTorch. Thomas has a Masters in Mathematics from NYU and a Masters in Physics from Stony Brook University.
Sessions
Python libraries can compute on multiple CPU cores using a variety of parallel programming interfaces such as multiprocessing, pthreads, or OpenMP. Some libraries use an ahead-of-time compiler like Cython or a just-in-time compiler like Numba to parallelize their computational routines. When many levels of parallelism operate simultaneously, it can result in oversubscription and degraded performance. We will learn how parallelism is implemented and configured in various Python libraries such as NumPy, SciPy, and scikit-learn. Furthermore, we will see how to control these mechanisms for parallelism to avoid oversubscription.