Summer School 2012 Programme

Programme

Day 1 (Monday, July 23, 2012)

0900 - 1600 Introduction to Shared-Memory Programming Using OpenMP

This workshop introduces the OpenMP compiler directives to users who want to write programs for shared-memory parallel computers, or to convert existing serial code to parallel. No previous knowledge about parallel programming is required, but some basic background in programming is assumed. The use of OpenMP has become the de facto industry standard for parallel programming on shared-memory machines, such as large SMP servers, or multicore desktops. Examples are in Fortran and C. Here is a basic outline of the contents:

This workshop introduces the Message Passiing Interface (MPI) and is directed at users who want to acquire basic skills in "parallelizing" code for distributed-memory clusters. No prior knowledge of MPI or other message-passing systems is required. However, some background in Unix operating systems and programming in Fortran, C, or other languages would be helpful. The following subjects will be addressed:

Day 3 (Wednesday, July 25, 2012)

900-1600 Programming GPUs with CUDA

This is an introductory course covering programming and computing on GPUs -- graphics processing units -- which are an increasingly common presence in massively parallel computing architectures. This two-day session will cover the most commonly used C-like programming framework: NVIDIA’s CUDA-C. The basics of GPU programming will be covered, and students will work through a number of hands on examples. Demonstrations of profiling and debugging applications running on the GPU will also be included. The structuring of data and computations that makes full use of the GPU will be discussed in detail. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications.