skip to navigation skip to content
Instructor-led course

Provided by: University Information Services



2012


2015


2017


2020



Register interest
Register your interest - if you would be interested in additional dates being scheduled.


Events available

Parallel Programming: Options and Design
Prerequisites


Description

This course is part of the Scientific Computing series.

This is a detailed overview of using parallelism for achieving more computation in the same amount of elapsed time, covering both "shared memory" and "distributed memory" designs. It will concentrate on principles rather than details, to help attendees make the right decision and proceed in the right direction. It is aimed at users with significant programming experience who need more computation power than can be delivered by a single thread of execution on a single CPU core, including those who already program in parallel. The course is also designed for system administrators who need to support parallel codes, by describing the range of practical options, and their strengths, weaknesses, configuration issues and other important issues.

Prerequisites

Significant programming experience with production code, OR a moderate amount of both programming and system administration experience. Participants should have attended "Building Applications out of Several Programs", and need to use more advanced facilities.

Topics covered
  • Reasons for needing parallelism and basic design
  • Thread pools, client-server, CPU farms etc.
  • HPC parallelism - vector, SPMD and message passing
  • SIMD, MIMD, SPMD, NUMA and other terminology
  • MPI, PVM, message passing and data distribution
  • Shared memory, POSIX/Microsoft threads, OpenMP,
  • SHMEM, BSP, Coarray Fortran and UPC
  • Synchronisation, atomicity and scheduling
Format

A presentation, followed by questions and discussions.

Notes
  • The principles are equally applicable to Microsoft Windows and most other systems, but the course will be in terms of Unix. Attendees should know enough Unix to understand its concepts and terminology.
  • More information may be found in http://www-uxsup.csx.cam.ac.uk/courses/Parallel
Duration

Two half day sessions

Themes

Events available

Override user: