HPCVL and Compute Canada Workshops July 2010:
Parallel Programming Using OpenMP, MPI and Posix Threads
July 19 - 21, 2010
HPCVL, Queen's University
Kingston, Ontario
Location and Time of Training Sessions:
Monday, July 19, 2010 (OpenMP) and
Tuesday, July 20, 2010 (MPI) and
Wednesday, July 21, 2010 (Posix Threads)
HPCVL Main Office, 993 Princess Street, Suite 115
Each Day: Registration: 8:30 am, Lectures: 9:00 am - 4:00 pm
Lecturers:
Hartmut Schmider and Gang Liu
HPCVL, Queen's University, Kingston, Ontario
Remote Access:
This workshop will be made available through Compute Canada by
broadcasting via Access Grid from our Training Room in Kingston. If you
would like to participate remotely, please contact us and we can determine
the location closest to you where you can join.
Confirmed Access Grid Rooms
- Ottawa: Carleton University, Herzberg Building, rm 3230B
- Charlottetown PEI: Room 104, Robertson Library (CMTC Classroom)
Register Here:
Please fill out Registration Form to sign up for the course http://www.hpcvl.org/training/course_reg.html
Workshop Overview:
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. The examples in this course are in
Fortran and C. 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
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
demonstration using an HPCVL Cluster. All examples are in Fortran, C and C++.
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
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 multicore
and multi-threaded computer architectures. This is a basic 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. All examples are in C. The lectures include demonstrations 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
|