Algorithms Flashcards

1
Q

What are the 3 types of parallelism?

A
  1. Pipelined algorithms / Algorithmic parallelism
  2. Geometric/ Partitioned parallelism
  3. Asynchronous/ relaxed parallelism
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  • What is pipelined algorithms/ algorithmic parallelism?
  • Mention 3 key concepts
A

Breaking down computation tasks into discrete stages that can be executed in parallel.
1. Stages
2. Parallel execution
3. Buffering

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  • What is geometric/ partitioned parallelism?
  • Mention 3 key concepts
A

A type of parallel computing where data can be decomposed into geometric regions that can be processed independently and concurrently.
1. Domain decomposition
2. Independent processing
3. Communication

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  • What is asynchronous/ relaxed parallelism?
  • Mention 3 key concepts
A

Running tasks independently without waiting for other tasks to complete.
1. Independence
2. Non-blocking execution
3. Callback mechanisms.

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

List 7 types of (less known) parallelism

A
  1. Data parallelism
  2. Task parallelism
  3. Instruction-level parallelism - multiple instructions from a single instruction stream.
  4. Thread-level parallelism
  5. Bit-level parallelism - reducing no. of instructions needed.
  6. Speculative parallelism
  7. Hybrid parallelism
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

List the 4 types of decomposition

A
  1. Recursive decomposition (recursion)
  2. Data decomposition (input/output data)
  3. Exploratory decomposition (tree like thing - next move)
  4. Speculative decomposition (switch-case)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is a task dependency graph?

A

An illustration of a decomposition where nodes correspond to tasks and edges indicate the results of one task is needed for processing the next.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  • How is granularity of a problem determined?
  • What is fine-grained decomposition and coarse grained decomposition?
A
  • By the number of tasks the problem is decomposed into.
  • Large no. of tasks = fine grained
  • Small no. of tasks = coarse grained
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is the degree of concurrency?

A

The number of tasks of a decomposition that can be executed in parallel.

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

What is the critical path length?

A

The length of the longest path in a task dependency graph.

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

What is a task interaction graph?

A

A graph where nodes represent tasks and edges represent their interactions/ data exchanges.

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

List 3 points considered during a process mapping

A
  1. mapping independent tasks to different processes.
  2. Assigning tasks on the critical path to processes as soon as they become available.
  3. Minimize interaction between processes, by mapping tasks with dense interactions to the same processes.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly