Day 1
Matthew Cordery, CSCS
1. Introductory Course on OpenMP Programming
- OpenMP programming model
- OpenMP directives for work sharing and syncronization
2. LAB (hands-on)
- Writing, compiling and executing simple OpenMP programs
- Identifying and resolving common issues
3. Advanced Topics
- Data scoping constructs
- Constructs introduced in OpenMP 3.0
4. LAB (hands-on)
- Experiments using data scoping constructs
- Examples with OpenMP 3.0 directives
Day 2
Neil Stringfellow, CSCS
1.Historical perspective
- Evolution of multi-core processors
- Parallel computing
- Programming and parallel programming
- OpenMP and MPI standardization
Roberto Ansaloni, CRAY
2. MPP systems with multi-core processors
- Building blocks of an MPP system
- Characteristic features of multi-core based MPP systems
- Introduction to Cray XE6 system
Neil Stringfellow, CSCS
3. Parallel programming with MPI and OpenMP
- MPI programming fundamentals
- OpenMP programming fundamentals
- OpenMP parallel constructs
- Hybrid (MPI + OpenMP) programming considerations, opportunities and challenges
Roberto Ansaloni, CRAY
4.Exploiting Cray Programming Environment for hybrid applications
- Details on code development environment
- Availability and usage of program execution environment
- Task and thread mapping strategy and supporting tools
5. LAB (hands-on)
- Experiments with threaded codes
-Executing a hybrid code
- Experimenting with compiler and run-time options on XE6 platform
Sadaf Alam and Jean-Guillaume Piccinali, CSCS
6. Debugging multithreaded and hybrid applications
- Common errors in multi-threaded codes
- Introduction to debugging tools for multi-threaded applications
7. LAB (hands-on)
- Debugging multi-threaded codes
Day 3
Roberto Ansaloni, CRAY
1.Performance measurement and tuning using Cray perftools
- Performance tools for threaded and hybrid applications
- Measurement and analysis considerations
- Identification of performance issues and bottlenecks
- Tunable parameters
2. LAB(hand-on)
- Experiments using libraries on the Cray XE6 platform
Neil Stringfellow, CSCS
3. Discussion on hybrid programming best practices and misconceptions
- Identifying load balance and overhead in mutli-threaded applications
- Results and analysis of hybrid test cases
- Introduction to hyperthreading
Adrian Tate, CRAY
Cray Math Software:
4. Introduction to multi-threaded libraries
- Historical perspective
- Auto-tuning approach on Cray MPP systems
- Examples: performance benefits of auto-tuned libraries
- Evolution of threaded libraries
5. LAB (hands-on)
- Experiments using libraries on the Cray XE6 platform
6. Advanced libraries concepts
- Runtime options
- Hybrid mode libraries
- Discussion on programming and execution parameters
7. LAB (hands-on)
- Hybrid mode library usage experiments
8. OpenMP and libraries evolution for future systems
- Next generation multi-core processors
- MPP systems with accelerators (GPGPU)