carpentries-incubator / carpentries-incubator/lesson-parallel-python

Have more overview

Open
#124 0 comments 0 reactions 1 assignee Claimed by @jhidding View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.