High Performance Python

Advanced exploration of software performance optimization for students with prior experience in Python. Students will learn about fundamental computer system architecture, memory hierarchies, and communication layers. Students will learn how to identify execution bottlenecks using profiling tools such as cProfile, Scalene, and VizTracer, and how to resolve them using compilation strategies including Cython, Numba, Rust, and PyPy. The curriculum covers efficient data processing using NumPy, PyTorch (GPU), Pandas, and Polars, memory optimization techniques including probabilistic data structures, and strategies for maximizing hardware utilization through asynchronous I/O with asyncio and uvloop, multiprocessing with Joblib and shared memory, and distributed clustering with Docker and message brokers. The course also addresses the future of Python developments like JIT compilation and No-GIL. The course prepares students to build scalable, robust solutions for data-intensive scientific and industrial problems).

Coming soon