Introduction

Serial Computing

  1. Divide problem into discrete instructions
  2. Execute instructions in sequence, one at a time

Memory wall: Disparity between processor (1ns) and memory speed ($\approx$ 100 to 1000ns)

PU is based on von Neumann model.

von Neumann Model

Performance boost methods

  1. Higher clock freq (Work hard)
  2. Pipelining, superscalar (Work smart)
  3. Multicore, cluster (Get help)

Parallel Computing

  Concurrency Parallelism
$>=2$ tasks Start/Run/Complete in overlapping periods Execute simultaneously
Progress via Interleaving their execution periods Running at the same time

Motivation:

Parallel Computing Approach

The Parallel Method

Parallel solution: Sum of $n$ numbers

Misc

Supercomputer: