Flynn's taxonomy, and "task parallelism and data parallelism" Quoted from http://en.wikipedia.org/wiki/Task_parallelism:


  Task parallelism (also known as function parallelism and control
  parallelism) is a form of parallelization of computer code across
  multiple processors in parallel computing environments. Task
  parallelism focuses on distributing execution processes (threads)
  across different parallel computing nodes. It contrasts to data
  parallelism as another form of parallelism.



I was wondering if there is some correspondence between  Flynn's
taxonomy (SISD, SIMD, MISD and MIMD), and "task parallelism and data parallelism"? For example,

does task parallelism mean multiple-instruction in Flynn's taxonomy,
so one can say "task parallelism = MISD+MIMD"?

does data parallelism mean multiple-data in Flynn's taxonomy, so one
can say "data parallelism = SIMD+MIMD"?
If there is no exact correspondence between the two classification
methods, how shall one understand their differences and relations?


Thanks and regards!
Task/Data parallelism is a simple classification that lies at the algorithm-level of a computation.

Flynn's taxonomy describes low-level machine architectures or models.

Trying to draw lines between both completely ignores the vast sea of complexity that lies between those two levels.  Using an example; You can do task, data and pipeline parallelism perfectly on a SISD for example. Stating that you cannot ignores the vast complexity of today's operating systems.