Python-for-HPC/source-code at master · gjbex/Python-for-HPC

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.

Requirements

  • Python version: at least 3.6
  • Packages (names listed taht can be used with pip or conda to install):
    • cython
    • dask
    • numba
    • numpy
    • numexpr
    • scipy
    • matplotlib
    • mpi4py
    • pytables
    • jupyter
    • ipywidgets

What is it?

  1. cython: illustrations of how to use Cython to speed up Python.
  2. dask: examples of how to use dask for distributed computing.
  3. interfacing-c-c++-fortran: illustrations of ctypes, SWIG and f2py to interface with C, C++ and Fortran code.
  4. ising: example of speeding up a Python simulation by wrapping C++ code using SWIG.
  5. mpi4py: illustrations of distributed programming using MPI.
  6. multiprocessing: illustrations of multithreaded programming using multiprocessing.
  7. numba: illustration of using the numba library.
  8. profiling: some illustrations and how-to on profiling a Python application.
  9. pyspark: illustrations of using PySpark.
  10. hdf5: examples of parallel I/O using HDF5.
  11. numpy-scipy: some numpy/scipy codes for benchmakring.
  12. pypy: code to experiment with the Pypy interpreter.
  13. file-formats: influcence of file formats on performance.
  14. performance: general considerations about performance.
  15. convolution: wrap up exercise to apply all techniques.

Note: the GPU code in this repository was moved to its own repository