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.

3.1. VM Support for Concurrent and Parallel Programming<br />

wrapper around an object, while Array wraps an array with implicit synchronization.<br />

3.1.2.4. Data Parallelism (DPar)<br />

Surprisingly, none of the VMs examined in this survey expose direct support<br />

for data parallelism. Instead, they are typically accompanied by standard<br />

libraries that build support for parallel programming on top of lowerlevel<br />

abstractions. Examples are the CLI with its library of parallel loop constructs,<br />

the JVM (incl. Dalvik) with its support for fork/join parallelism in<br />

the java.util.concurrent library, 15 and GHC with libraries for map/reduce<br />

parallelism. These libraries are built on top of concepts already available, e. g.,<br />

threads, atomic operations, and locks, and t<strong>here</strong>fore the analyzed VMs do not<br />

provi<strong>de</strong> primitives that expose parallel programming concepts directly.<br />

3.1.2.5. Threats to Validity<br />

Completeness of Selected Subjects The main survey question was: how do<br />

today’s VMs support parallel and concurrent programming approaches? The answer<br />

to this question is based on a set of thirteen VMs. Thus, the number is limited<br />

and the selected set may exclu<strong>de</strong> VMs that provi<strong>de</strong> other mechanisms and expose<br />

them in other ways to the application programmer. However, since the<br />

survey covers contemporary multi-language VMs, and a number of additional<br />

VMs respected for their support for parallel and concurrent programming,<br />

it covers the VMs that are directly relevant for the goal of this dissertation.<br />

Furthermore, the selected VMs reflect common practice in VM support for concurrent<br />

and parallel programming approaches, because the selection inclu<strong>de</strong>s<br />

the most wi<strong>de</strong>ly used VMs, as well.<br />

Correctness and Completeness of Results With respect to the concrete survey<br />

questions of which concepts are exposed and how they are exposed, a<br />

number of threats to correctness and completeness of the results need to be<br />

consi<strong>de</strong>red.<br />

General Threats to Accuracy As shown in Tab. 3.1, the analysis did not inclu<strong>de</strong><br />

the implementations of the CLI and DisVM. Instead, the quality of their<br />

15 http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/packagesummary.html<br />

53

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

Saved successfully!

Ooh no, something went wrong!