FIXME: home page introduction
Prerequisites
The participant should be:
- familiar with basic Python: control flow, functions, numpy
- comfortable working in Jupyter
Recommended:
- understand how NumPy and/or Pandas work
FIXME: home page introduction
Prerequisites
The participant should be:
- familiar with basic Python: control flow, functions, numpy
- comfortable working in Jupyter
Recommended:
- understand how NumPy and/or Pandas work
Setup | Download files required for the lesson | |
00:00 | 1. Introduction |
What problems are we solving, and what are we not discussing?
Why do we use Python? What is parallel programming? Why can it be hard to write a parallel program? |
00:25 | 2. Measuring performance |
How do we know our program ran faster?
How do we learn about efficiency? |
01:25 | 3. Understanding parallelization in Python |
What is the Global Interpreter Lock (GIL)?
How do I parallelize a Python application? What is data parallelism? What is task parallelism? How do I use multiple threads in Python? |
02:55 | 4. Dask abstractions: bags and delays |
What abstractions does Dask offer?
What programming patterns exist in the parallel universe? |
04:25 | 5. Snakemake |
What are computational workflows?
How do you program using a build system? How do I mix Python code into a workflow? |
05:15 | 6. Asyncio fundamentals |
What is AsyncIO?
How do I structure an async program? |
06:15 | 7. Dynamic programming |
How can I save intermediate result and recover from crashes?
How can I prevent duplicate computations? |
06:15 | 8. Calling external C and C++ libraries from Python |
What are some of my options in calling C and C++ libraries from Python code?
How does this work together with Numpy arrays? How do I use this in multiple threads while lifting the GIL? |
07:45 | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.