NERSCPowering Scientific Discovery Since 1974

Cori Phase 1 Training: Programming and Optimization

NERSC will host a four-day training event for Cori Phase 1 users on Programming Environment, Debugging and Optimization from Monday June 13 to Thursday June 16. The presenters will be Cray instructor Rick Slick and NERSC staff.

Cray XC Series Programming and Optimization

Description

This course is intended for people who work in applications support or development of Cray XC Series computer systems. It familiarizes students with the hardware and software architecture, Cray’s performance analysis tools, and optimization of user codes. Using lectures and practical laboratory exercises, the course provides sufficient instruction to enable inexperienced users to develop and optimize applications.

Prerequisites

Experience with UNIX shells and commands such as ls, grep, and man. Working knowledge of C, C++, or Fortran programming language and the ability to write, compile, and execute programs on a UNIX system.  Previous experience with at least one parallel programming style and one multiprocessor computer architecture is advantageous. 

Topics Addressed

  • Hardware concepts and terminology that are relevant to the programmer
  • Launch of a parallel application
  • Operating system components that a parallel application uses
  • Use of SLURM for job launch and monitoring
  • Modules environment
  • Use of the compilers (C, C++, and Fortran), loader, and libraries
  • Use of the application debugger
  • MPI environment variables
  • I/O on the Cray system
    • Lustre 
    • DataWarp ( sometimes referred to as Burst Buffer)
  • Use of available performance analysis tools
  • Single-processor optimization

Agenda

Monday June 13, 2016 Pacific Time  Eastern Time  Topic
  8:30 AM 11:30 AM coffee and light breakfast
  9:00 AM 12:00 PM Introductions, System Overview
  10:30 AM 1:30 PM Break
  10:45 AM 1:45 PM Lustre
  12:00 PM 3:00 PM Lunch (on your own at lab cafeteria)
  1:00 PM 4:00 PM External Services, Sonexion part 1
  2:20 PM 5:20 PM Break
  2:40 PM 5:40 PM Sonexion part 2, DVS and DSL
  4:00 PM 7:00 PM End of day 1
       
Tuesday June 14, 2016 Pacific Time  Eastern Time  Topic
  8:30 AM 11:30 AM coffee and light breakfast
  9:00 AM 12:00 PM CNL Programming Environment, part 1
  10:30 AM 1:30 PM Break
  10:45 AM 1:45 PM CNL Programming Environment, part 2 
  12:00 PM 3:00 PM Lunch (on your own at lab cafeteria)
  1:00 PM 4:00 PM Running Jobs via SLURM (by Helen He, NERSC)
  2:20 PM 5:20 PM Break
  2:40 PM 5:40 PM DataWarp (Burst Buffer)
  4:00 PM 7:00 PM End of day 2
       
Wednesday June 15, 2016 Pacific Time  Eastern Time  
  8:30 AM 11:30 AM coffee and light breakfast
  9:00 AM 12:00 PM Debuggers
  10:30 1:30 PM Break
  10:45 1:45 PM Performance Tools, part 1
  12:00 PM 3:00 PM Lunch (on your own at lab cafeteria) 
  1:00 PM 4:00 PM Performance tools, part 2
  2:20 PM 5:20 PM Break
  2:40 PM 5:40 PM Performance tools, part 3
  4:00 PM 7:00 PM End of day 3
       
Thursday June 16, 2016 Pacific Time  Eastern Time  
  8:30 AM 11:30 AM cofee and light breakfast
   9:00 AM 12:00 PM Single Node Optimization, part 1
  10:30 AM 1:30 PM Break
  10:45 AM 1:45 PM Single Node Optimization, part 2
  12:00 3:00 PM Lunch (on your own at lab cafeteria)
  1:00 PM 4:00 PM MPI Environment, part 1
  2:20 PM 5:20 PM Break
  2:40 PM 5:40 PM MPI Environment, part 2
  4:00 PM 7:00 PM End of day 4, end of course

Registration

Please fill out the short Registration Form to help us with logistics.  Registration for In person attendance has been closed on June 6.

In person and Remote Connection Information

This event will be presented both online using Zoom technology and in person at NERSC/LBNL (visitor info) in Berkeley, CA.  The training will be held at Building 59, Room 3101 (CRT Building, aka Wang Hall), Monday to Wednesday, and at Perseverance Hall (Building 54, Room 130 (aka Perseverance Hall in Lab Cafeteria) on Thursday. 

Remote Connection info is available here.

Presentation Materials

Slides for the training will be available here