carpentries-incubator / carpentries-incubator/lesson-parallel-python
Have more overview
- Dominant language
- Dockerfile
- Stars
- 11
- Forks
- 15
- Avg merge
- 3m
- Merged PRs (30d)
- 3
Description
The course is sectioned:
Introduction - Benchmarking: What Why (more speed!)
Computing Pi - Threading/MP: How (low level)
Delayed - Data flow: How (human level: managing complexity)
Whatever and exercise.
- [ ] Computing Pi
- [ ] Threading/MP: needs the overview
- [ ] Delayed
- [ ] Dataflow
---
* Concepts
- chunking
- dependency diagram
- natural parallelism
* Benchmarking
- timing your code
- checking memory consumption
* First make things fast
- numpy vectorization
- numba just-in-time
* Then make things run parallel
- threading
- OS dependent internal mechanism for running functions concurrently (i.e. `fork`)
- `-` need to lift the GIL somehow
- `+` low on resources
- `+` shared memory
- multiprocessing
- Starts a new process (like from the shell) and sets up communication channels in other ways
- `-` large overhead
- `-` need for data serialisation
- `-` complicates shared memory
- `-` less flexible: for instance no lambdas
- `+` circumvents the GIL
Opened by @jhidding https://github.com/esciencecenter-digital-skills/parallel-python-workbench/issues/11
Contributor guide
Assessment
This issue has not been assessed yet.