This lesson is being piloted (Beta version)

Introduction

Overview

Teaching: 10 min
Exercises: 5 min
Questions
  • What parallel computing is and why it is important?

  • How does a parallel program work?

Objectives
  • Explain differences between a serial and a parallel program

  • Introduce types of parallelism available in modern computers

Why to learn parallel computing?

Parallel Computing Applications

Here are just a few examples of how parallel computing is helping to accelerate research and solve the previously unsolvable problems.

  1. Numeric Weather prediction
    • Taking current observations uses mathematical models to forecast the future state of the weather
  2. Computational Astrophysics
    • Numerical relativity, magnetohydrodynamics, stellar and galactic magnetohydrodynamics
  3. Seismic Data Processing
    • Analyze seismic data to find oil and gas-bearing layers
  4. Commercial world
    • Nearly every major aspect of today’s banking, from credit scoring to risk modelling to fraud detection, is GPU-accelerated.
  5. Pharmaceutical design
    • Uses parallel computing for running simulations of molecular dynamics
  1. Computational fluid dynamics, tidal wave simulations

Benefits of Parallel Computing:

Limitations and Disadvantages:

Before you start your parallel computing project

In this lesson, we hope to give you knowledge and skills to make the right decisions on parallel computing projects.

How does a Parallel Program Work?

Parallelism is the future of computing. Parallel programming allows us to increase the amount of processing power in a system. How does a parallel program work?

Traditional serial program

Parallel program

For example, a typical Compute Canada cluster has thousands of computers (network nodes):

What fraction of the total processing power can a serial program use?

Let’s consider an 8 core CPU with AVX-512 vector unit, commonly found in home desktops.

  • What percentage of the theoretical processing capability of this processor can a double-precision serial program without vectorization use?
  • What about a serial program with vectorization?

Solution

  1. 8 cores x (512 bit-wide vector unit)/(64-bit double) = 64-way parallelism. 1 serial path/64 parallel paths = .016 or 1.6%
  2. Full use of 1 of 8 cores = 25%

TOP 500 publishes current details of the fastest computer systems.

Key Points

  • Parallel computing is much better suited for modelling, simulating and understanding complex, real-world phenomena.

  • Modern computers have several levels of parallelism