async parallel
No one teaches programming within an async parallel frame. Which is a problem because most “good” applications or services use async/parallel concepts. The further problem is how amorphous the topic is with vague definitions, etc. Even worse, each language implements it differently.
I made this post as a meta-post of resources for understanding async and parallel behavior of programs. It’s a collection of rabbit holes, other blog posts, and documentation for understanding how to use this coding paradigm.
async
Async is difficult to understand because languages provide different abstractions for it. At the base level, it is hardware interrupts.
parallel
It’s generally easy to understand the idea of multi-threading 1, even to the point of out-of-order execution black magic, but it is nice to have some resources to look at for reference.
- SIMD Wikipage
- Out-of-Order Execution Wikipage
- MapReduce Wikipage
- Insert pthreads Page
-
It is hard to wrap your head around how the kernel synchronizes and delegates tasks to different cores to achieve multithreading. ↩