Lecture 5/6 - Design and Analysis of Parallel Programs Flashcards
PRAM Model
parallele random access machine
MIMD
multiple instructions multiple data
Parallel Performance Models
Parallel execution time
Counted from the start time of the earliest task to the finishing time of the latest task
Work
the total number of performed elementary operations
Cost
the product of parallel execution time and #processors
Speed-up
the factor by how much faster we can solve a problem with p processors than with 1 processor, usually in range (0…p)
Parallel efficiency
Speed-up / #processors, usually in (0…1)
Throughput
operations finished per second
Scalability
does speedup keep growing well also when #processors grows large?
Asymptotic Analysis
Estimation based on a cost model and algorithm idea (pseudocode operations) n Discuss behavior for large problem sizes, large #processors
Empirical Analysis
n Implement in a concrete parallel programming langauge n Measure time on a concrete parallell computer l Vary number of processors used, as far as possible n More precise n More work, and fixing bad designs at this stage is expensive
Greedy scheduling
(also known as ASAP, as soon as possible) Dispatch each task as soon as - it is data-ready (its predecessors have finished) - and a free processor is available
Critical-path scheduling
Schedule tasks on critical path first, then insert remaining tasks where dependences allow, inserting new time steps if no appropriate free slot available
Layer-wise scheduling
Decompose the task graph into layers of independent tasks Schedule all tasks in a layer before proceeding to the next