Parallelism Design Flashcards

1
Q

In what ways can you decompose a problem into parallel components?

A

Data parallelism
Task parallelism
Pipelines
Mixed solutions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is data parallelism?

A

Breaking a large data set into smaller subsets that can be processed concurrently on multiple processors.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is task parallelism

A

Breaking a large task into smaller sub-tasks that can be executed concurrently on multiple processors

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is course grained parallelism?

A

• A program is split into large tasks to be executed in parallel.
• Good for data parallelism as all threads execute the same instructions. No load imbalance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is fine grained parallelism?

A

• A program is split into small tasks to be executed in parallel.
• Fine with data parallelism as well, no load imbalance.
• Good for task parallelism/pipelining (with planning), allows the program to be split into tasks to reduce load imbalance and increase throughput.
• I.e. if addressing takes two timesteps because for 1 timestep, we write the address, and for another we stamp the letter, why not do more?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is mixed solution in terms of granularity?

A

• Differing number of threads depending on how long a task takes to complete

How well did you know this?
1
Not at all
2
3
4
5
Perfectly