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 />

e. g., arithmetic units enables higher <strong>de</strong>grees of instruction-level parallelism.<br />

In combination with duplicated register files, techniques such as simultaneous<br />

multithreading can hi<strong>de</strong> memory latency and utilize the available functional<br />

units more efficiently. Duplicating whole cores enables more heterogeneous<br />

parallel workloads. However, workloads such as data-intensive graphic<br />

operations are better served by large data-parallel units. These can come in<br />

the form of vector processing units embed<strong>de</strong>d into a traditional processor, or<br />

mo<strong>de</strong>rn GPU computing processors that consist of vast numbers of very simple<br />

but highly parallel processing elements. Depending on target applications,<br />

processor vendors mix and match these <strong>de</strong>sign options to offer more computational<br />

power to their customers [Hennessy and Patterson, 2007]. However,<br />

exploiting available hardware parallelism remains a task for software <strong>de</strong>velopers.<br />

To conclu<strong>de</strong>, multicore processors will play a major role for the foreseeable<br />

future and software <strong>de</strong>velopers will need to use the offered parallelism to<br />

fulfill the performance requirements for their software.<br />

2.3. Concurrent vs. Parallel Programming: Definitions<br />

The goal of this section is to clarify the notions of concurrency and parallelism<br />

in or<strong>de</strong>r to accurately categorize the programming concepts of this field later<br />

in this dissertation. To this end, this dissertation introduces the additional<br />

notions of concurrent programming and parallel programming, which provi<strong>de</strong><br />

stronger distinguishing properties and facilitate the discussions in Chapter 3.<br />

2.3.1. Concurrency and Parallelism<br />

Distinction often avoi<strong>de</strong>d Defining the two terms concurrency and parallelism<br />

is often avoi<strong>de</strong>d in literature. Subramaniam [2011, p. xiv] even claims<br />

“t<strong>here</strong>’s no clear distinction between these two terms in industry[...]”. Others such<br />

as Axford [1990, p. 4,6] and Lea [1999, p. 19] mention the terms, but do not<br />

make a clear distinction between them. However, they indicate the difference<br />

between systems with physical parallelism and systems with merely time<br />

shared execution.<br />

Distinction by execution mo<strong>de</strong>l from historical perspective Lin and Sny<strong>de</strong>r<br />

[2008, p. 21] explain the situation within its historic context. The term concurrency<br />

was used in the operating system and database communities, which<br />

18

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

Saved successfully!

Ooh no, something went wrong!