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.4. Common Approaches to Concurrent and Parallel Programming<br />

Almasi and Gottlieb’s Taxonomy<br />

Almasi and Gottlieb [1994] use a different taxonomy to classify “most parallel<br />

architectures”. Their taxonomy (cf. Tab. 2.2) is based on two dimensions data<br />

and control, much like Flynn’s. However, the interpretation of these dimensions<br />

is very different. The data mechanism divi<strong>de</strong>s the parallel architectures<br />

into being based on shared or private memory. The control mechanism on the<br />

other hand, classifies based on the way control flow is expressed. Their classification<br />

starts with control driven as the category with the most explicit control,<br />

and ends with data driven for mechanism that <strong>de</strong>pend the least on explicit<br />

control flow.<br />

Table 2.2.: Classification of computational mo<strong>de</strong>ls, with examples. [Almasi and Gottlieb,<br />

1994, p. 25]<br />

Data Mechanism<br />

Control Mechanism Shared Memory Private Memory (message passing)<br />

Control driven von Neumann Communicating processes<br />

Pattern driven Logic Actors<br />

Demand driven Graph reduction String reduction<br />

Data driven Dataflow with I-structure Dataflow<br />

While this taxonomy covers a wi<strong>de</strong> range of concurrent and parallel programming<br />

concepts, it does so on a very abstract level. Especially its emphasis<br />

on the control mechanism is of lesser relevance for this dissertation. Since this<br />

research targets contemporary multi-language VMs, all computational mo<strong>de</strong>ls<br />

have to be mapped to a control-driven representation.<br />

A Partial Taxonomy of Contemporary Approaches<br />

Neither Flynn’s nor Almasi and Gottlieb’s taxonomy reflect common concurrent<br />

and parallel programming concepts in a way that facilitates their discussion<br />

in the context of this dissertation. T<strong>here</strong>fore, this dissertation uses a partial<br />

taxonomy on its own. The following section discusses this taxonomy and<br />

its four categories Threads and Locks, Communicating Threads, Communicating<br />

Isolates, and Data Parallelism. The categorization focuses on how concurrent<br />

and parallel activities interact and coordinate each other, since these aspects<br />

are the main mechanisms exposed to the programmer, and one point which<br />

makes the various concepts distinguishable, even with the necessarily brief<br />

discussions of the concepts in this dissertation.<br />

25

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

Saved successfully!

Ooh no, something went wrong!