HPC Fundamentals Series Summer 2012
The Oak Ridge Leadership Computing Facility (OLCF) and National Institute for Computational Sciences (NICS) will be offering a summer training course on high-performance computing fundamentals. The course will meet once a week for 1-2 hours for eight weeks during the summer. The course is designed for summer students and interns who have no prior experience in high-performance computing topics. The course would also be beneficial for any staff wishing to learn more about high performance computing.
COURSE INTRODUCTION
The goal of this course is to provide a survey of high performance computing. The course will discuss topics related to accessing high performance computing resources, developing applications for those resources, and executing developed applications. The lectures and presentations are designed to provide knowledge and experiences to students that serve as a foundation for continued learning of high performance computing.
Who may attend: The course is limited to individuals who already have access to the ORNL campus. The course will also be webcast if there is sufficient interest.
When: Course will meet from 3:00 p.m. – 4:00 p.m. every Monday (Except for the first and last week of class, which will be on Wednesdays). The classes will be held in 5100, Room 128 (Lecture Hall). Based on availability, the meeting may change rooms throughout the course.
REGISTRATION IS REQUIRED
[tab: Overview]COURSE DESCRIPTION
The course is designed to provide a survey of high performance computing. The focus of the course is to provide students with an introduction to the concepts, tools, and methods for using high performance computers.
COURSE OBJECTIVES
Upon the successful completion of this course, the student will be able to:
- Describe high performance computing in the context of scientific computing.
- Understand the concepts of parallel processing as it pertains to high-performance computing
- Navigate Unix type operating systems using a command line interface.
- Understand basic programming using the C programming language.
- Understand and develop basic parallel programs using the C programming language.
- Develop and execute parallel programs on high performance computing resources using parallel programming paradigms such as the message passing interface (MPI)
Course objective in focus:
- Instructor and students introductions
- HPC at Oak Ridge National Laboratory
- Learn the basic terminology commonly used in high performance computing
WEEK 2 – Introduction to Unix/Linux
Course objective in focus:
- Gain knowledge of interfacing with command line interfaces (CLI)
- Gain knowledge of basic Unix commands
- Gain knowledge of basic scripting techniques
WEEK 3 & 4 – Programming basics
Course objective in focus:
- Review of basic programming techniques
- Learn compilation techniques in Unix environment
- Develop application including writing, compiling, debugging, and execution
WEEK 5 – Parallel programming
Course objective in focus
- Learn parallel concepts
- Learn parallelism on single/multiple processor systems
- Discuss distributed architectures
WEEK 6 – Message Passing Interface (MPI)
Course objective in focus
- Learn MPI concepts
- Learn the six most important MPI function calls
- Learn to program in C using MPI
WEEK 7 & 8 – Build a Cluster
Course objective in focus
- Learn network concepts
- Learn to build a cluster from commodity components
- Learn to analysis cluster performance
There are no required texts for this course. A laptop with network connectivity is required. An ssh connection utility should be installed on the laptop. Mac and Linux operating systems typically have this installed by default. PuTTY is a freely available download for the Windows operating system.