Title:
HPCVL and Compute Canada Workshops in February 2011 –
Parallel Programming Using OpenMP, MPI and Posix Threads
Date:
February 22-24, 2011 (8am until 3pm each day)
Location:
E2-568 Engineering Information and Technology Complex
University of Manitoba Fort Garry Campus
Abstract:
These free workshops are directed at students and researchers who plan to use high performance computers (servers, clusters). No prior knowledge of parallel programming is required. The workshops are made available through Compute Canada by broadcasting via video conferencing in room E2-568, EITC. Please RSVP to aronsson@cc.umanitoba.ca if you plan to attend.
Day 1: Introduction to OpenMP
This workshop introduces the OpenMP compiler directives to scientists who are interested in writing programs for shared-memory parallel computers, or who want to convert existing serial code to parallel. No previous knowledge about parallel programming is required, but we assume some basic background in programming , preferably in Fortran or C.
The use of OpenMP has become the de facto industry standard for parallel programming on shared-memory machines. It also makes implicit use of the multi-core nature of current CPU’s. Most of the examples in this course are in Fortran, but the C programming language is considered as well. The workshop includes practical demonstrations.
Here is a short outline of the contents:
- Introduction to parallel programming, especially for shared memory
- OpenMP compiler directives
- Loop parallelism
- Explicit parallel regions
- Synchronization
- Issues in shared-memory programming and how to resolve them
- New features of OpenMP 3.0
Day 2: Introduction to MPI
The Introduction to MPI workshop is directed at programmers and scientists, with a basic background in programming, who want to acquire basic skills in “parallelizing” code for a variety of platforms ranging from multi-processor servers to clusters. No prior knowledge of MPI or other message-passing systems is required. However, some background in programming in Fortran, C, or other languages would be helpful.
The lectures include practical demonstrations. The following subjects will be addressed:
- Programming and Runtime Environments
- Rank, Size, Communicators
- Pre-defined data types
- Point-to-point and collective communication
- Parallel Principles and Programming Steps
- Combination of MPI with OpenMP
- Parallel Scheduling
- User-Defined Data Types
Day 3: Introduction to Posix Multithreading
The Introduction to Posix Multithreading workshop is for programmers and scientists with a basic background in C programming, who want to increase the flexibility and responsiveness of their code and take advantage of modern multi-core and multi-threaded computer architectures.
This is an introduction to the Posix Thread Library and its application to the parallelization of C programs. We assume no prior knowledge of multithreading or parallel programming, but some background in Unix operating systems and programming in C will be necessary. The lectures include demonstrations of example programs on a multicore machine. The following subjects will be addressed:
- Parallel Programming and Multithreading
- The Posix Thread Library, Basics of Thread Programming
- Creating and Manipulating of Threads
- Attributes
- Synchronization and Locks
- Once Initialization
- Condition Variables
- Thread-Specific Data and Destructors
Cost:
FREE!
Registration:
RSVP to aronsson@cc.umanitoba.ca if you plan to attend.
Contact:
For more information contact Jonatan Aronsson
.