05.08.2014 Views

here - Stefan-Marr.de

here - Stefan-Marr.de

here - Stefan-Marr.de

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2. Context and Motivation<br />

Table 2.1.: Flynn’s taxonomy<br />

Data Stream<br />

Single Multiple<br />

Instruction Single SISD SIMD<br />

Stream Multiple MISD MIMD<br />

2.4.1. Taxonomies<br />

To structure the discussion of the vast field of concurrent and parallel programming,<br />

this section reviews two taxonomies proposed in the literature.<br />

These two taxonomies unfortunately do not match the focus of this dissertation.<br />

T<strong>here</strong>fore, a partial taxonomy is introduced to structure the discussion<br />

<strong>here</strong> and in later chapters of this dissertation.<br />

Flynn’s Taxonomy<br />

Flynn’s taxonomy can be used as a coarse categorization of programming<br />

concepts [Flynn, 1966]. Originally, the proposed taxonomy is meant to categorize<br />

computer organizations, but it is abstract enough to be used in a more<br />

general context. Flynn based it on the notions of instruction streams and data<br />

streams, w<strong>here</strong> a set of instructions forms a program to consume data in a<br />

given or<strong>de</strong>r. Using these notions, Flynn i<strong>de</strong>ntifies four possible categories (cf.<br />

Tab. 2.1): single instruction stream - single data stream (SISD), single instruction<br />

stream - multiple data streams (SIMD), multiple instruction streams - single data<br />

stream (MISD), and multiple instruction streams - multiples data streams (MIMD).<br />

For the purpose of this dissertation, SISD represents classic single threa<strong>de</strong>d<br />

programs. SIMD corresponds to single threa<strong>de</strong>d programs that use vector<br />

instructions to operate on multiple data items at the same time. MISD can<br />

be un<strong>de</strong>rstood as a multi-threa<strong>de</strong>d program that runs on a single core with<br />

time shared execution without exhibiting real parallelism. Thus, each thread<br />

of such a program corresponds to a distinct instruction stream (MI), but the<br />

observable sequence of memory accesses is a single data stream coming from<br />

a single data store. MIMD corresponds then to applications with multiple<br />

threads executing in parallel, each having its distinct stream of memory access,<br />

i. e., separate data streams and data stores. Since the concurrent and<br />

parallel programming concepts relevant for this dissertation are variations of<br />

multiple instruction streams (MI), Flynn’s taxonomy is too coarse-grained to<br />

structure the discussion.<br />

24

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!