Event Detail


Sorry, the registration period for this event is over.

2011: Multi-threaded Programming, Tuning and Optimization on Multi-core MPP Platforms --- February 15-17


CSCS announces a 2 and half-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 workshop will start with a half day introduction into OpenMP, and forms the basis for a GPU programming workshop to be held from 29-31 Mar 2011.

The course syllabus will be published soon 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, Matthew Cordery, Sadaf Alam and Neil Stringfellow.

Registration deadline: February 7, 2011.

Please contact mgg(at)cscs.ch for further technical information and apinna(at)cscs.ch for logistical information.



Roberto Ansaloni and Adrian Tate from Cray; Sadaf Alam, Matthew Cordery and Neil Stringfellow from CSCS

VenueCSCS, Manno

12:00-17:30 first day (for the Introduction to OpenMP)

9:00 - 17:30 the other two days

Target system

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.


Participants are expected to bring a laptop for hands-on training.

Login onto Palu will be via ssh using wlan.

Maximum number of participants28


Course Syllabus

Day One (12.00 to 17.30 hrs)

12:00 - 13:30 Lunch all together

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 Two (9.00 to 17.30 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 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
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 Three (9.00 to 17.30 hrs)

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
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
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)

Back to listing