Registration now open for the upcoming RC Short Course- Fundamentals of High Performance Computing

Join Research Computing this spring for our HPC Short Course: Fundamentals of High Performance Computing
 
Instructors: Peter Ruprecht, Andy Monaghan and Nick Featherstone
 
Location: OIT-TLC-215   (12 students maximum)  or Remote using Zoom https://cuboulder.zoom.us/j/4239862482     
 
Modules: 5 modules @ 2 hours each. (2 instances of each module)
 
Prerequisites: Please bring a laptop with a Secure Shell (SSH) client software installed on it to each session. Additional prerequisites are specified below for individual modules.
 
Participant Feedback Survey: http://tinyurl.com/curc-survey16
 
 
Overview: This course has five modules intended to cover introductory as well as more advanced fundamentals of high performance computing. Each module will be presented twice on different dates/times, to accommodate varying user schedules (users should only attend a given module once).  Each module is self-contained and therefore users can choose to take all five or just one or two, depending on ability and interests.  
 
Registration: Registration needs to be completed for each module you wish to attend. Each module is self-contained and therefore users can choose to take all five or just one or two, depending on ability and interests. 
HPC1--Linux
HPC2--Bash
HPC3--Jobs
HPC4--Profiling&Scaling
HPC5--Compiling&Linking
 
Module 1 - Introduction to Linux: This module is designed for people with little or no experience using the Linux command line.  Attendees will gain enough basic expertise to confidently navigate the filesystem, create directories and files, understand processes and shells, and use the most common Linux commands.  The class format will be primarily lecture and demonstration, with a few optional exercises.  There will be time at the end for more detailed discussion and one-on-one consulting.
 
Sections: 
               M1.1: (Ruprecht): Jan 31 2:15-4:30 (class from 2:30-4:30)
               M1.2: (Ruprecht): Feb 1 10:00a-12:15p (class from 10:15-12:15)
 
Module 2 - Introduction to Bash Shell Scripting: Shell scripts are files containing collections of commands for Linux systems that can be executed as programs. They are powerful tools for performing complex and/or repetitive tasks.  This course will teach the basics of scripting with the most common Linux shell, the Bourne Again shell (bash). Attendees will learn how to initialize variables, do simple arithmetic, use logic statements, implement do loops, and create functions within bash shell scripts. The class format will be primarily lecture and demonstration, with a few optional exercises. There will be time at the end for more detailed discussion and one-on-one consulting. (Attendees should have a basic knowledge of Linux as a prerequisite.) 
 
Sections: 
               M2.1: (Monaghan): Feb 28 2:45-5:00p (class from 3:00-5:00p)
               M2.2: (Monaghan): Mar 1 10:00-12:15p (class from 10:15-12:15)
 
Module 3 - HPC Job Submission and Load Balancing:  This course will cover the basics of job submission on the CU’s Summit supercomputing cluster. Attendees will learn to submit both interactive and batch jobs using the Slurm workload manager.  The course will also discuss the CURC Load Balance tool, which enables multiple tasks to be optimally balanced and executed within a single batch job. The class format will be primarily lecture and demonstration. There will be time at the end for more detailed discussion and one-on-one consulting. (Attendees should have a basic knowledge of Linux as a prerequisite.) 
 
Sections: 
               M3.1: (Monaghan): Mar 8 2:45-5:00p (class from 3:00-5:00p)
               M3.2: (Monaghan): Mar 9 10:00-12:15p (class from 10:15-12:15)
 
Module 4 - Profiling and Scaling Code on HPC: This course will provide an overview of profiling serial and parallel  performance.  Attendees will gain familiarity with those concepts necessary to characterize program performance for a computing allocation request.  Topics to be covered include: Timing functions available in C++ and Fortran, commonly used profiling tools, the concepts of strong and weak scaling, and vectorization. (Attendees should have a basic knowledge of Linux as a prerequisite.) 
 
Sections: 
               M4.1 (Featherstone): Mar 19 9:45a-12:00p (class from 10:00a-12:00p)  
    M4.2 (Featherstone): Mar 22 10:45a-1:00p (class from 11:00a-1:00p)
 
Module 5 - Fundamentals of Compiling Programs and Linking Libraries in an HPC Environment: This class will provide an overview of compiling and linking in a Linux environment.  Topics to be covered include: Makefiles, linking order, creating and linking to shared and static libraries, LD_LIBRARY_PATH and the HPC module system, and the RPATH variable.  Examples will be provided in Fortran and C++. (Attendees should have a basic knowledge of Linux as a prerequisite.) 
 
Sections: 
               M5.1 (Featherstone): Apr 2 9:45a-12:00p (class from 10:00a-12:00p) 
               M5.2 (Featherstone): Apr 5 10:45a-1:00p (class from 11:00a-1:00p)