Before diving into the concrete programming examples with MPI and OpenMP, this session introduces some theoretical concepts and presents the several paradigms and tools offered by Linux for parallel computing when a program itself is not able to run in parallel.
Contents:
Theoretical concepts: parallelism, speedup, scaling, overhead, etc.
Common parallel computing paradigms (SPMD, Map/Reduce, etc.)
GNU tools for parallel computing (xargs and GNU parallel)
Parallel computing with pipelines (UNIX pipes and FIFO files)
Prerequisite:
Being able to use SSH with private keys
Being familiar with a text editor
Mastering the Linux command line and the GNU utilities (mkdir, cp, scp, etc.)
Type: Hands-on Target audience: Everyone Must: This session is a nice-to-have.
The use of Python for scientific computing is rising thanks to modules such as numpy, scipy and mathplotlib. This session explores the efficient uses of Python in that context for situations where numpy and co. are of less use. It assumes a working knowledge of Python.
Contents:
Installing libraries
Numpy
Scipy
Multithreading
Compiling
Prerequisite:
Being able to use SSH with private keys
Being familiar with a text editor
Mastering the Linux command line and the GNU utilities (mkdir, cp, scp, etc.)
Working knowledge of Python
Type: Hands-on Target audience: Confirmed Python user Must: This session is a must-have for anyone who thinks Python is slow.