|
| 1 | +Although vanilla Python is fairly slow and hence not a good candidate, |
| 2 | +there are several options to significantly increase the efficiency of |
| 3 | +Python programs. |
| 4 | + |
| 5 | + |
| 6 | +## Learning outcomes |
| 7 | + |
| 8 | +When you complete this training you will |
| 9 | + |
| 10 | + * understand and identify performance bottlenecks of Python; |
| 11 | + * know some libraries that can help improve performance for scientific |
| 12 | + computing such as numpy, numexpr and numba; |
| 13 | + * be able to use Cython to improve your code's performance; |
| 14 | + * be able to wrap C, C++ and Fortran code to use it from Python; |
| 15 | + * understand the opportunities and pitfalls of multithreaded |
| 16 | + programming with Python; |
| 17 | + * be able to write distributed application using MPI; |
| 18 | + * have an understanding of how frameworks for distributed |
| 19 | + computing such as dask and pyspark work. |
| 20 | + |
| 21 | + |
| 22 | +## Schedule |
| 23 | + |
| 24 | +Total duration: 4 hours. |
| 25 | + |
| 26 | + | Subject | Duration | |
| 27 | + |---------------------------------------------|----------| |
| 28 | + | introduction and motivation | 5 min. | |
| 29 | + | performance and profiling | 25 min. | |
| 30 | + | libraries | 10 min. | |
| 31 | + | Cython | 60 min. | |
| 32 | + | coffee break | 10 min. | |
| 33 | + | interfacing with C/C++/Fortran | 30 min. | |
| 34 | + | multithreaded programming | 10 min. | |
| 35 | + | MPI | 45 min. | |
| 36 | + | dask | 15 min. | |
| 37 | + | pyspark | 20 min. | |
| 38 | + | wrap up | 10 min. | |
| 39 | + |
| 40 | + |
| 41 | +## Training materials |
| 42 | + |
| 43 | +Slides are available in the |
| 44 | + [GitHub repository](https://github.com/gjbex/Python-for-HPC), |
| 45 | +as well as example code and hands-on material. |
| 46 | + |
| 47 | + |
| 48 | +## Target audience |
| 49 | + |
| 50 | +This training is for you if you need to use Python for computationally |
| 51 | +intensive scientific computing. |
| 52 | + |
| 53 | + |
| 54 | +## Prerequisites |
| 55 | + |
| 56 | +You will need experience programming in Python, using numpy, and have a passing |
| 57 | +familiarity with C/C++. This is not a training that starts from scratch. |
| 58 | + |
| 59 | +If you plan to do Python programming in a Linux or HPC environment you should |
| 60 | +be familiar with these as well. |
| 61 | + |
| 62 | + |
| 63 | +## Trainer(s) |
| 64 | + |
| 65 | + |
0 commit comments