29.04.2014 Views

Presburger Arithmetic and Its Use in Verification

Presburger Arithmetic and Its Use in Verification

Presburger Arithmetic and Its Use in Verification

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.

Chapter 2<br />

Multicore parallelism on F# <strong>and</strong> .NET<br />

framework<br />

The chapter starts with a brief overview of multicore parallelism. Although multicore<br />

parallelism is a special case of parallel process<strong>in</strong>g which performs on the<br />

multicore architecture, the architecture actually has a huge <strong>in</strong>fluence on how multicore<br />

parallelism is done <strong>and</strong> what we can achieve. Later we <strong>in</strong>troduce parallelism<br />

constructs by a series of familiar examples, we shall see that the functional paradigm<br />

is suitable <strong>and</strong> easily used to write correct parallel implementations.<br />

2.1 Multicore parallelism: a brief overview<br />

The section describes some useful concepts which will be used throughout the report.<br />

Although these concepts are terms of parallel process<strong>in</strong>g, they should be understood<br />

<strong>in</strong> the specific context of multicore parallelism. We also present the architecture of<br />

multicore computers because it is essential <strong>and</strong> has its <strong>in</strong>fluence on what we can<br />

achieve <strong>in</strong> multicore parallelism.<br />

2.1.1 Platform<br />

Parallel comput<strong>in</strong>g is usually classified by platforms where they are executed. A<br />

platform could be a cluster of nodes where coord<strong>in</strong>ation is done by message pass<strong>in</strong>g<br />

or a s<strong>in</strong>gle mach<strong>in</strong>e with multiple cores coord<strong>in</strong>at<strong>in</strong>g <strong>in</strong> parallel us<strong>in</strong>g shared<br />

memory. In this work, parallel process<strong>in</strong>g is done on a multicore platform, so<br />

shared-memory parallel programm<strong>in</strong>g is used by default here. One th<strong>in</strong>g needed<br />

to clarify is we focus on parallelism rather than concurrency. By parallelism, we<br />

mean to exploit all system resources to speedup computation as much as possible, so<br />

performance is the most important goal. This is different from concurrency where<br />

different jobs may be executed at the same time <strong>and</strong> may not block each other.<br />

Moreover, multicore is rather new compared to other parallel platforms so results<br />

on those platform require careful justification. The structure of multicore comput-<br />

5

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

Saved successfully!

Ooh no, something went wrong!