16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

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.

Learning outcomes:<br />

[Core-Tier1]<br />

1. Explain why synchronization is necessary in a specific parallel program. [Usage]<br />

2. Identify opportunities to partition a serial program into independent parallel modules. [Familiarity]<br />

[Core-Tier2]<br />

3. Write a correct and scalable parallel algorithm. [Usage]<br />

4. Parallelize an algorithm by applying task-based decomposition. [Usage]<br />

5. Parallelize an algorithm by applying data-parallel decomposition. [Usage]<br />

6. Write a program using actors and/or reactive processes. [Usage]<br />

PD/Communication and Coordination<br />

[1 Core-Tier1 hour, 3 Core-Tier2 hours]<br />

Cross-reference OS/Concurrency for mechanism implementation issues.<br />

Topics:<br />

[Core-Tier1]<br />

• Shared Memory<br />

• Consistency, and its role in programming language guarantees for data-race-free programs<br />

[Core-Tier2]<br />

• Message passing<br />

o Point-to-point versus multicast (or event-based) messages<br />

o Blocking versus non-blocking styles for sending and receiving messages<br />

o Message buffering (cross-reference PF/Fundamental Data Structures/Queues)<br />

• Atomicity<br />

o Specifying and testing atomicity and safety requirements<br />

o Granularity of atomic accesses and updates, and the use of constructs such as critical sections or<br />

transactions to describe them<br />

o Mutual Exclusion using locks, semaphores, monitors, or related constructs<br />

• Potential for liveness failures and deadlock (causes, conditions, prevention)<br />

o Composition<br />

• Composing larger granularity atomic actions using synchronization<br />

• Transactions, including optimistic and conservative approaches<br />

[Elective]<br />

• Consensus<br />

o (Cyclic) barriers, counters, or related constructs<br />

• Conditional actions<br />

o Conditional waiting (e.g., using condition variables)<br />

- 149 -

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

Saved successfully!

Ooh no, something went wrong!