View on GitHub

Notes

reference notes

Parallel Algorithm

Introduction to Parallel Algorithm

A parallel algorithm is a method for solving a problem using multiple processors. It involves dividing a computation into smaller tasks and assigning them to different processors for parallel execution. The design and development of parallel algorithms typically follow a series of steps:

Terms & Definitions

1. Understand the Problem and the Program

2. Identify Potential Areas to Parallel

3. Decomposing Problems to Tasks

4. Granularity of Task Decompositions

5. Degree of Concurrency

Critical Path Length

Critical Path

Limits on Parallel Performance

Task Interaction Graphs

Example

Sparse Matrix-Vector Multiplication

Interaction Graphs, Granularity, & Communication

Here are your notes organized using markdown:

Decomposition Techniques

There are several decomposition techniques in parallel computing:

Recursive Decomposition

Data Decomposition

Exploratory Decomposition

Speculative Decomposition

Hybrid Decompositions

Process and Mapping

Mapping Techniques

Mapping Techniques for Minimum Idling

Schemes for Static Mapping

Parallel Algorithm Design Models

Data Parallel Model

Task Graph Model

Master-Slave Model

Pipeline / Producer-Consumer Model

Hybrid Models