This is source code that is either used in the presentation, or was developed to create it. There is some material not covered in the presentation as well.
- Python version: at least 3.6
- Packages (names listed taht can be used with
pip
orconda
to install):- cython
- dask
- numba
- numpy
- numexpr
- scipy
- matplotlib
- mpi4py
- pytables
- jupyter
- ipywidgets
cython
: illustrations of how to use Cython to speed up Python.dask
: examples of how to use dask for distributed computing.interfacing-c-c++-fortran
: illustrations of ctypes, SWIG and f2py to interface with C, C++ and Fortran code.ising
: example of speeding up a Python simulation by wrapping C++ code using SWIG.mpi4py
: illustrations of distributed programming using MPI.multiprocessing
: illustrations of multithreaded programming using multiprocessing.numba
: illustration of using the numba library.profiling
: some illustrations and how-to on profiling a Python application.pyspark
: illustrations of using PySpark.hdf5
: examples of parallel I/O using HDF5.numpy-scipy
: some numpy/scipy codes for benchmakring.pypy
: code to experiment with the Pypy interpreter.file-formats
: influcence of file formats on performance.performance
: general considerations about performance.convolution
: wrap up exercise to apply all techniques.
Note: the GPU code in this repository was moved to its own repository