HP2C is closed

The content of these web pages will not be updated anymore.

Fact Sheets on HP2C

Two fact sheets presents the HP2C initiative and its projects.

Multi-threaded Programming, Tuning and Optimization on Multi-core MPP Platforms

Community HP2C
Wednesday 1 December 2010 - Thursday 2 December 2010

The HP2C platform announces a 2-day intensive course focused on multi-threaded programming, tuning and optimization and multi-threaded libraries on massively parallel processing (MPP) systems that are composed of multi-core processors. The course syllabus is below and it will be delivered by senior personnel from Cray, Roberto Ansaloni (Cray Italy) and Adrian Tate (Technical Lead of Math Software, Cray), and CSCS (Sadaf Alam and Neil Stringfellow). CSCS advanced development system called Palu, a Cray XE6 MPP system, which is composed on dual-socket AMD Magny-cours Opteron processors (24 cores per node) and a high performance interconnect called GEMINI will be targeted for the hands-on sessions. All HP2C groups are encouraged to participate in the course. Please contact alam@cscs.ch for further information.



If you want to participate you can register here (deadline: November 20, 2010. Note that the number of participants is limited to 25).



Participants are expected to be familiar with basic concepts of parallel programming specifically MPI and OpenMP programming. Please refer to the online training material available at:





École Polytechique Fédérale de Lausanne (EPFL),  MA B1 486


Day One (9.00 to 17.00 hrs):

1. Historical perspective

  • Evolution of multi-core processors
  • Parallel computing
  • Programming and parallel programming
  • OpenMP and MPI standardization

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

3. Parallel programming with MPI and OpenMP

  • MPI programming fundamentals
  • OpenMP programming fundamentals
  • OpenMP parallel constructs
  • Hybrid (MPI + OpenMP) programming considerations, opportunities and challenges

4. Exploiting Cray Programming Environment for hybrid applications

  • Details on code development environment
  • Availability and usage of program execution environment
  • Task and thread mapping strategies 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

6. Discussion on hybrid programming best practices and misconceptions

  • Results and analysis of hybrid test cases
  • Identifying load balance and overhead
  • Introduction to hyperthreading


Day Two (9.00 to 17.00 hrs):

1. 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

2. LAB

  • Experiments using libraries on the Cray XE6 platform

3. Advanced libraries concepts

  • Runtime options
  • Hybrid mode libraries
  • Discussion on programming and execution parameters

4. LAB

  • Hybrid mode library usage experiments

5. Performance measurement and tuning

  • Performance tools for threaded and hybrid applications
  • Measurement and analysis considerations
  • Identification of performance issues and bottlenecks
  • Tunable parameters

6. LAB

  • Experiments with performance tools

7. Future systems and programming models

  • Next generation multi-core processors
  • MPP systems with accelerators
  • Hybrid programming for accelerator based MPP systems
  • Programming models interoperability
  • Code and performance portability considerations
  • Libraries development for future systems