Relation Between Flynn's Taxonomy and Concurrency
https://softwareengineering.stackexchange.com/questions/375518
-
07-02-2021 - |
Question
I have known about the Flynn taxonomy for a while (SIMD, MIMD, etc.), as well as models of concurrency (actor model, petri nets, etc.). However I am wondering now how they overlap and interrelate. If some of the concurrency models can be encapsulated in some of the Flynn taxonomy models somehow, or vice versa.
Solution
Flynn's Taxonomy generally deals with much smaller "units" than Computational Models for Parallelism. After all, the "I" stands for (single, atomic, simple) "instructions".
Also, Flynn's Taxonomy deals with Parallelism, whereas you also listed models of Concurrency.
But there are definitely … parallels (SCNR).
The two major forms of Parallelism are:
- Data Parallelism: Data is partitioned into sub-partitions and the same Operation is applied to each sub-partition. (Examples: parallel collections (e.g. Scala), Data Parallel Haskell, MapReduce.)
- Task Parallelism: Operations are partitioned into different Tasks, and those Tasks are applied to either the same Data, different Data, or sub-partitions of the Data. (Example: Task Parallel Library in .NET.)
There is an obvious parallel between Data Parallelism and SIMD. There is another obvious parallel between Task Parallelism and MI*D.