High-Performance Computing using Campus Cluster

Download as .zip Download as .tar.gz View on GitHub

Introduction to HPC

Who this is for:

This seminar is intended for students with prior programming experience (i.e., who are comfortable with basic idioms like for statements and compiling and linking code) but who aren't certain where to begin using a cluster. We will attempt to give you the lay of the land of HPC: the basic conventions, architectural assumptions, and computer science background necessary to follow a high-level discussion on supercomputing.

Who this is not for:

If you have been working comfortably on clusters in the past, you are probably already familiar with most of the terminology, conventions, and utilities which we will discuss.

If you have very little programming experience, you should focus on mastering serial programming in the language of your choice before parallelism complicates things. (If you are interested in scientific programming and don't have a reason to choose one language over another, Python is an excellent place to start; C, C++, and Fortran are strong alternatives, particularly if you need parallelism.) If you are not comfortable in Linux and the command line, you may consider the CSE Training workshop on the Linux command line, also offered in Spring 2014.

Agenda

Day 1

Day 2

HPC and Campus Cluster Links

Beginner's Guide to Campus Cluster

User's Guide to Campus Cluster

Guide to Installing Software

HPC University Training Roadmap

UCAR SEA Best Practices for HPC

Courses at UIUC
ECE 408/CS 483 Applied Parallel Programming
ECE 492/CS 420/CSE 402 Introduction to Parallel Programming for Scientists and Engineers
ECE 428/CS 425/CSE 424 Distributed Systems
CS 524 Concurrent Programming Languages
CS 525 Advanced Topics in Distributed Systems
CS 533 Parallel Computer Architectures
CS 554/CSE 512 Parallel Numerical Algorithms
ECE 598HK/CS 598HK Computational Thinking for Many-Core Computing