With the increase in usage of Python over the past few years, developers have found ways to strain the Python language in the applications they write. For many who use Python in production, getting the most out the language has proved to be a difficult task. This tutorial will explain the latest techniques, tips & tricks to tune Python applications. Attendees will get hands-on experience on tuning Python performance for the Black Scholes algorithm and Collaborative Filtering, and will learn when and how to effectively use the right tools and techniques to get the best performance. We’ll summarize with a look at a real world example from the Barcelona Supercomputing Center and the performance tuning methods they used. Overview: - Introduction & Tools of the trade for optimizing Python performance - Native Performance libraries - Performance profilers - Parallelism tools and other accelerators (Dask, Numba, MPI4PY, numexpr, Cython) - Hands-On activity: Optimizing Black Scholes algorithm - Hands on activity: Collaborative Filtering example - Introduction & Tools of the trade for optimizing Python performance - Real world Application example: PyCOMPSs from Barcelona Supercomputing Center