|
Setup |
Download files required for the lesson |
09:00 |
1. Getting started with Python on Supercomputing Wales
|
How do I run Python on Supercomputing Wales?
How do I install packages and other Python software on Supercomputing Wales?
|
09:40 |
2. Hardware and software design
|
What aspects of Python’s design prevent it running as fast as we might want?
What aspects of computer and supercomputer design allow us to work around this?
|
10:05 |
3. Coffee break
|
Break
|
10:25 |
4. GNU Parallel for quick gains
|
How and when do I use GNU Parallel with Python programs?
|
10:55 |
5. Profiling to identify bottlenecks
|
Why is it important to know which parts of my software run slowly?
How do I find out where to target optimisation effort?
|
11:30 |
6. Numpy (and Scipy)
|
How can I use Numpy to go faster on a single core?
To what extent can Numpy exploit multiple cores?
What can Scipy do to help in all this?
|
12:45 |
7. Lunch break
|
Break
|
13:45 |
8. Multiprocessing with Pathos
|
How can I distribute subtasks across multiple cores or nodes?
|
14:45 |
9. Coffee break
|
Break
|
15:05 |
10. Numba for automatic optimisation
|
How can I get performance close to that of machine-code from my hand-written Python code?
How can I target GPUs from Python?
|
16:20 |
11. Dask for parallel data operations
|
How can I parallelise common library operations across multiple cores and nodes?
|
17:35 |
12. Summary
|
Which techniques should I use for which types of problem?
What should I do next?
|
17:45 |
Finish |
|