SFU course 'HPC Python - Part 1'
Date: 24 April 2025 @ 17:00 - 19:00
Register Python has become the dominant language in scientific computing thanks to its high-level syntax, extensive ecosystem, and ease of use. However, its performance often lags behind traditional compiled languages like C, C++, and Fortran, as well as newer contenders like Julia and Chapel. This course is designed to help you speed up your Python workflows using a variety of tools and techniques.We'll begin with classic optimization methods such as NumPy-based vectorization, and explore just-in-time compilation using Numba, along with performance profiling techniques. From there, we'll delve into parallelization -- starting with multithreading using external libraries like NumExpr and Python 3.13's new free-threading capabilities -- but placing greater emphasis on multiprocessing.Next, we'll dive into Ray, a powerful and flexible framework for scaling Python applications. While Ray is widely used in AI, our focus will be on its core capabilities for distributed computing and data processing. You'll learn how to parallelize CPU-bound numerical workflows -- with and without reduction -- as well as optimize I/O-bound tasks. We'll also explore combining Ray with Numba and will discuss coding tightly coupled parallel problems.Please note: this course does not cover GPU computing (which merits its own course), nor will we dive into mpi4py, the standard MPI library for Python.
Keywords: HPC, GPU, Python, Programming, Julia
Venue: online
Activity log