High Performance Computing with Python

Basic information

Workload: 

45 hours

Prerequisite: 

Does not exist.

Syllabus: 

Advanced Python concepts. Optimizing Python. Analyzing performance. Optimized use of Numpy and Pandas. Interactions with C Language. Interactions with FORTRAN. Using Cython. Exploring the Pypy. Numba. Concurrency and asynchronous processing. Parallel processing: Threads and processes. Distributed processing: Dask and Pyspark. 

Bibliography

Mandatory: 

·       Python High Performance - Second Edition: Build high-performing, concurrent, and distributed applications. Gabriele Lanaro. 2017
·        High Performance Python: Practical Performant Programming for Humans. Misha Gorelik e Ian Ozvald. O’Reilly. 2014
·       Fluent Python. Luciano Ramalho. O’Reilly. 2015

Complementary: 

· Cython: A guide for programmers. Kurt Smith. 2015 
· IPython Interactive Computing and Visualization Cookbook - Second Edition: Over 100 hands-on recipes to sharpen your skills in high-performance and data science in the Jupyter Notebook. Cyrille Rossant. 2018 
· Elegant SciPy: The Art of Scientific Python. Juan Nunez-Iglesias and Stéfan van der Walt. 2017
· Guide to NumPy: 2nd Edition. Travis E. Oliphant. 2015 
· Scientific Computing with Python, Flávio Codeço Coelho. 2007