Introduction to OpenMP and MPI @ EPCC at Portsmouth

Europe/London
DS1.09 (Portsmouth)

DS1.09

Portsmouth

Dennis Sciama Building, University of Portsmouth, Burnaby Road, Portsmouth, PO1 3FX.
Description

Please note the course will be held in Portsmouth:
 

ARCHER, the UK's national supercomputing service, offers training in software development and high-performance computing to scientists and researchers across the UK. As part of our training service we will be running a 1 day ‘Introduction to OpenMP and MPI’ training session which follows on from the Software Carpentry 2 day course held immediately preceding in the same venue.

This course provides a brief introduction to the two most common approaches to programming parallel computers: OpenMP and MPI.

Details

Almost all modern computers have aspects of a shared-memory architecture with multiple CPUs connected to the same physical memory, for example multicore laptops or large multi-processor compute servers. The first half of this course covers OpenMP, the industry standard for shared-memory programming, which enables serial programs easily to be parallelised using compiler directives. It covers an introduction to the fundamental concepts of the shared variables model, followed by the syntax and semantics of OpenMP and how it can be used to parallelise real programs.

Large scale parallel computers are constructed by linking many separate shared-memory systems together using some communications network. The message-passing programming model is almost universally used to program supercomputers such as ARCHER. The second half of this course introduces the de facto standard for message passing, the Message Passing Interface (MPI), and covers the basic knowledge required to write parallel programs with MPI. It outlines the message-passing model and basic point-to-point communication.

This course is free to all academics.

Intended learning outcomes

On completion of this course students should be able to:

  •      Understand shared memory programming.
  •      Compile and run simple OpenMP programs.
  •      Understand distributed memory programming.
  •      Compile and run simple MPI programs.

 

 

 

 

    • Lecture: Parallel programming
    • Practical: Running MPI and OpenMP programs on ARCHER
    • Coffee
    • Lecture: Shared variables and message-passing models
    • Traffic model thought experiment
    • Lunch
    • Lecture: OpenMP
    • Practical: OpenMP traffic model
    • Tea
    • Lecture: MPI
    • Practical: MPI traffic model