2024-heraklion-parallel-python/README.md

32 lines
1.4 KiB
Markdown

# Parallel Python
A lecture from ASPP 2024. The slides and exercises are in `slides/` and `exercises/`, respectively.
A really cool example of using `asyncio` with the dakos program is in `extras/`.
## Lecture outline
1. Processes, threads and THE GIL
2. Hands-on investigations of embarrassingly parallel problems
A. Multithreading with NumPy
B. The multiprocessing package
C. Blending processes and threads
3. Going further
## Online resources
* Online textbook on operating systems, processes, threads, etc.
* [Operating Systems: Three Easy Pieces](https://pages.cs.wisc.edu/~remzi/OSTEP/#book-chapters)
* Chapters 4, 13, and 26 are particularly relevant.
* But the whole book is interesting.
* Report of a talk on Python concurrency types, with focus on sub-interpreters.
* [Python subinterpreters and free-threading](https://lwn.net/Articles/985041/)
* Comparison of multithreading, multiprocessing, and asyncio.
* [Async Python: The Different Forms of Concurrency](http://masnun.rocks/2016/10/06/async-python-the-different-forms-of-concurrency/)
* Note the code snippets are a little outdated.
* Example of webscraping with asyncio
* [Asynchronous Web Scraping in Python - ZenRows](https://www.zenrows.com/blog/asynchronous-web-scraping-python#scrape-multiple-pages-asynchronously)
* Sub-interpreters in 3.12
* [Sub-interpreter web workers](https://tonybaloney.github.io/posts/sub-interpreter-web-workers.html )