CSC's trainings and events have moved

Find our upcoming trainings and events at

This site is an archive version and is no longer updated.

Go to CSC Customer trainings and Events

Cray XC Workshop

Cray XC Workshop
Date: 27.02.2013 9:00 - 02.03.2013 12:00
Location details: -
Language: english-language
lecturers: Harvey Richardson
Stefan Andersson
Tom Edwards (Cray Inc).
Price: -

The 3.5 day workshop will give attendees the knowledge required to understand the most optimal way to port, optimize and execute applications on the CSC Cray XC service "Sisu".  The workshop is a mixture of lectures and practical sessions.  Example exercises will be provided but attendees are encouraged to bring along their own applications to the workshop.   Although specifically targeting the Cray architecture and programming environment much of the lessons learned with be more generally useful.

The course consists of a detailed introduction to the following topics:

  • Overview of the system and its use (module system, storage, batch job system,...)
  • Compiling and porting codes to the Cray XC
  • Profiling and optimizing parallel codes
  • Program development tools and libraries on Sisu
  • Using PGAS languages to scale up applications
Roughly half of the course will be devoted to hands-on work on participants' own codes.

First Day (Feb 26)

Attendees will learn about the Cray XC architecture and its programming environment. They will have an initial understanding of potential causes of application performance bottlenecks, and how to identify some of these bottlenecks using the Cray Performance tools. The attendees will use the Cray performance tools to profile their applications.


09:00-09:30 Registration
09:30-09:40 Welcome, workshop overview                                                              
09:40-10:30 Overview of the Cray XC Architecture (CSC specifics, system, nodes, processors, network, Network performance, packaging and cooling, I/O system)
10:30-10:45 Coffee break
10:45-11:30 Programming Environment for the Cray XC system (Cray compilation environment, modules, linking…)
11:30-11:45 Break
11:45-13:00 Cray Linux Environment (node Linux, running jobs)
13:00-14:00 Lunch
14:00-15:00 Short introduction to tools on the Cray XC system (STAT, ATP, Fast track debugging, profiling, Totalview)
15:00-15:15 Coffee break
15:15-15:30 Introductions to the Hands-On session (Examples, hints on compilation etc.)
15:30-18:00 Hands on Lab: Porting and profiling applications

Second Day (Feb 27)

We will finalize the presentations on how to identify performance bottlenecks. The attendees will use Cray Apprentice2 for performance visualization and will learn various optimization techniques. The attendees will start to tune their applications at the hands on lab.

09:00-10:30 Performance Analysis and Visualization I (Craypat profiling, sampling, tracing, tools)
10:30-10:45 Coffee break
10:45-12:00 Performance Analysis and Visualization II (load imbalance, PGAS/OpenMP, Reveal)
12:00-13:00 Hands on Lab: Analyzing application performance (possible live demo of Reveal)
13:00-14:00 Lunch break
14:00-15:00 Optimization Techniques I: CPU (memory,  loop optimizations, cache, vectorization)
15:00-15:45 Optimization Techniques II: MPI (MPI life of a message, reordering, huge pages)
15:45-16:00 Coffee break
16:00-17:00 Hands on Lab: Tuning applications
17:00-          Social event: sauna, drinks & snacks

Third Day (Feb 28)

The attendees will learn advanced techniques to deal with scaling problems and how to access the on-line documentation for user help. In the hands on lab the attendees will continue to tune their applications.

09:00-10:30 I/O Optimization (parallel I/O, filesystems, Lustre, MPI I/O)
10:30-10:45 Coffee break
10:45-11:45 Cray Scientific and Math Libraries
11:45-13:00 Hands on Lab: Tuning applications
13:00-14:00 Lunch
14:00-17:00 Hands on Lab: Tuning applications (coffee being served at 15:00)

Fourth Day (Mar 1)

Introduce PGAS programming with UPC and Fortran Coarrays.

09:00-09:15 PGAS Introduction (including a review of HPC programming models)
09:15-10:15 Fortran Coarrays
10:15-10:45 Break
10:45-11:45 Unified Parallel C (UPC)
11:45-12:00 Wrapup discussion