Parallel Computing Flashcards

1
Q

What is a directed acyclic graph (DAG) and how is it used in describing explicit parallelism?

A

Used to model dependencies between tasks.

Because they make clear which tasks can be executed in parallel.

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

Functional Parallelism

A

Focus on parallel execution of functions.

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

Data Parallelism

A

Focus on parallel processing of data

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

Task Parallelism

A

Focus on parallel executions of tasks such as thread, semaphores and locks.

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

What is Parallel Speedup and Efficiency?

A

Parallel Speedup is how much faster is the parallel algorithm.

Parallel Efficiency is the measure of the performance loss associated with parallel execution.

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

Amdahl’s Law

A

Tp = T1 (Fs + Fp / P)

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

Flynn’s Taxonomy

A

Characterizes architectures by whether the data flow and control flow are shared or independent.

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

SISD

A

Single Instruction Single Data:

At any one time only a single instruction is executed

Ex. Single Core

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

SIMD

A

Single Instruction Multiple Data:

Single Instruction broadcasted to multiple processors

Ex. Pipelining

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

MISD

A

Multiple Instruction Single Data:

Multiple Instructions operate on the same data stream.

Ex. Redundant computing for fault tolerance?

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

MIMD

A

Multiple Instruction Multiple Data:

Multiple cores operate on multiple data items.

Ex. Clusters and MPPs

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

Describe the particular case of SPMD and how it relates to Flynn’s taxonomy.

A

Single Program Multiple Data:

Running the same program with different data inputs on parallel processors

SPMD is a type of MIMD

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

Symmetric multiprocessor

A

Where processors see no difference between one memory location from another

Any memory location is accessible to every processor

Access times do not differ

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

Logically distributed memory

A

The memory is logically spread across all processors but is physically stored locally on each processor.

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

Physically Distributed Memory

A

The processors have their own address space that is physically separate from the memory of other processors.

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

What does granularity mean with respect to parallelism?

A

How many operations can be performed between synchronizations.

17
Q

What is Thread Parallelism?

A

Multiple threads within a single process are run in parallel.

18
Q

What is the difference between a thread and a process?

A

Same code as a process but has a private program counter, stack, and local variables.

19
Q

What is the fork-join mechanism?

A

Divides a program into multiple threads to do different tasks and then joins to combine the results.

20
Q

What is a thread context? What does it consist of?

A

Private data (stack, local variables)

21
Q

What are atomic operations?

A

Operations performing a single indivisible step.

22
Q

What is a critical section? Is it used in shared address space or distributed address space architectures?

A

Where multiple threads need to access the same resources one at a time.

Can be used in both shared address space or distributed address space architectures.

23
Q

What is affinity in thread systems?

A

Mapping certain threads to run on only certain cores.

24
Q

What is the difference between hyperthreading and multi-threading?

A

Hyperthreading does not run at the same time, but quickly switches between themselves when one thread is waiting.

Multi-threading can do many processes at the same time to get more work done faster.

25
Degree
The number of nodes connected to another node.
26
Bisection Width
The minimum number of links that have to be removed to divide the graph into 2 equal parts
27
Diameter
the maximum shortest distance between two nodes.
28
Why is the difference between static and dynamic scheduling?
Static: Using a pre-determined assignment of work to processors. Dynamic: The assignment is determined during executions.