[PDF] [PDF] Concurrency and Parallelism

Granularity must be large enough to offset the overhead that will be needed to manage the tasks and threads □ More computation: higher granularity 



Previous PDF Next PDF





[PDF] Concurrency and Parallelism

Granularity must be large enough to offset the overhead that will be needed to manage the tasks and threads □ More computation: higher granularity 



[PDF] The Art Of Concurrency A Thread Monkey S Guide To - Unhaggle

of Concurrency: A Thread Monkey's Guide to Writing Lecture 2 The Art of Concurrency[ pdf ] Download The Art Of Concurrency Ebook and Read OnlineThe Art



The Art Of Concurrency A Thread Monkeyaposs Guide To - dTV

Rather than enjoying a good PDF past a cup of coffee in the afternoon, otherwise they juggled gone some harmful virus inside their computer the art of 



[PDF] Theory And Practice Of Concurrency - Caribbean Environment

il y a 3 jours · Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications Concurrent Programming on 

[PDF] the art of programming embedded systems pdf

[PDF] the art of unit testing

[PDF] the art of unit testing amazon

[PDF] the art of unit testing epub

[PDF] the art of unit testing github

[PDF] the art of unit testing java pdf

[PDF] the art of unit testing: with examples in c#

[PDF] the awk programming language

[PDF] the bairnsdale advertiser death notices today

[PDF] the balance mortgage calculator

[PDF] the base hydrolysis of benzamide by naoh produces

[PDF] the basic structure of a class action

[PDF] the beijing convention aviation

[PDF] the benefits and limits of decision models

[PDF] the benefits of diversification are greatest when asset returns have:

Carlos Jaime Barrios Hernandez, PhD.

EISI UIS @carlosjaimebh Concurrency and Parallel Programming Concurrency and Parallel Programming

Concurrent and Parallel

La répétition sur la scène, 1874, Edgar Degas, Paris, Musée d'Orsay. Plan

Traditional Way

Designing and Building Parallel Programs, by Ian Foster in http://www.mcs.anl.gov/~itf/dbpp/

Design Spaces of Parallel Programming

• Patterns for Parallel Programming, Timoty Mattson, Beverly A. Sanders and Berna L. Massingill, Software Pattern Series, Addison-Wesley 2004 • Finding Concurrency (Structuring Problem to expose exploitable concurrency) • Algorithm Structure (Structure Algorithm to take advantage of Concurrency) • Supporting Structures (Interfaces between Algorithms and Environments) • Implementation Mechanisms (Define Programming Environments)

Concurrency and Parallelism

Concurrent Programming is all about independent computations that the machine can execute in any order.

Concurrent Programming General Steps

1. Analysis

2. Design and Implementation

3. Tests of Correctness

4. Tune of Performance

Distributed Vs. Shared Memory Programming

Common Features

Work serial algorithm, resulting concurrent version, number of threads / processors

Only to Shared Memory

is Boss / Worker)

Tasks and Data Decomposition

Concurrent Computation from Serial Codes

Sequential Version Parallel / Concurrent Version

What are the tasks and how are defined?

threads. that will be needed to manage the tasks and threads Granularity is the amount of computation done before synchronization is needed

Task Granularity

overhead task overhead task overhead task overhead task overhead task overhead task overhead task overhead task Fine-grained decomposition Coarse-grained decomposition

Task Dependencies

Order Dependency Data Dependency

Enchantingly Parallel Code: Code without dependencies

How should you divide data into chunks?

By individual elements By rows By groups of columns By blocks

The Shape of the Chunk

handled during the course of the chunk computations.

2 Shared Borders

• Regular shapes : Common Regular data organizations. • Irregular shapes: may be necessary due to the irregular organizations of the data.

5 Shared Borders

How should you ensure that the tasks for each chunk have access to all data required for update? chunk. Original split with ghost cells Copying data into ghost cells How are the data chunks (and tasks) assigned to threads? uniform and predictable the computation needed by chunk

Concurrent Design Models Features

resources. sizes of data sets.

Tasks and Domain Decomposition Patterns

organized around the manipulation of large data structure. data structure. decomposition will be implied by task decomposition.

Group and Order Tasks Patterns

structure constraints on the order of execution of a collection of tasks.

Data Sharing Pattern

access to some portions of the another task's local data.

Design Evaluation Pattern

constraints

Not Parallelizable Jobs, Tasks and Algorithms

The Mythical Man-Month: Essays on Software Engineering. By Fred Brooks. Ed Addison-Wesley Professional, 1995

Algorithm Structures

Algorithm Structure Decision Tree (Major Organizing

Principle)

Start Organize By Tasks Linear Task Parallelism Recursive Divide and Conquer Organize By Data Decomposition Linear Geometric Decomposition Recursive Recursive Data Organize By Flow of Data Linear Pipeline Recursive Event-Based Coordination

Divide and Conquer Strategy

split split split Solve Solve Solve Solve Merge Merge Merge

Divide and Conquer Parallel Strategy

Each dashed-line box represents a task

Recursive Data Strategy

decomposed into individual elements. structure) data structure (Synchronization) rooted directed trees.

Pipeline Strategy

CPUs pipelining)

Event-Based Coordination Strategy

a flow of data between the groups, implying ordering constraints between the tasks

Final Notes

manipulation of a large data set structure. independency. simplicity, portability and scalability): portability and suitability for a particular target architecture.

Recommended Lectures

Blog: http://www.informit.com/articles/article.aspx?p=1626979 ) MassinGill (Ed. Addison Weslley, 2009) Web Site: http://www.cise.ufl.edu/research/ParallelPatterns/ http://www.mcs.anl.gov/~itf/dbpp/quotesdbs_dbs20.pdfusesText_26