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
Q

Degree

A

The number of nodes connected to another node.

26
Q

Bisection Width

A

The minimum number of links that have to be removed to divide the graph into 2 equal parts

27
Q

Diameter

A

the maximum shortest distance between two nodes.

28
Q

Why is the difference between static and dynamic scheduling?

A

Static: Using a pre-determined assignment of work to processors.

Dynamic: The assignment is determined during executions.