High-Performance Computing Workshops

Computational Science and Engineering

Foreword

This workshop series will introduce you to basic concepts in High-Performance Computing. If you need to use a cluster, this is a great way to get up to speed on how things work and why.

Any Unix-based machine has everything we need for the workshop. If you plan to use your personal laptop that runs Windows, you should install a terminal emulator, such as MobaXterm.

Location

All workshops will be held in the EWS computer laboratory, L520 Digital Computer Laboratory.

There is no sign-up for this series—walk-ins are welcome and encouraged!

L520 DCL can be a little tricky to find if you haven’t been there before. It’s located in the basement, and can be accessed by going down the main staircase in DCL and turning right.

Topics

Introduction to the Command Line

Feb. 16, 11:00 a.m.–1:00 p.m.

The TOP500 Project: The list of top 500 Supercomputers

Lesson notes: Single page or Multi-page
Exercises: #1, #2, #3, #4, #5, #6

Basics of Cluster Computing

Feb. 23, 11:00 a.m.–1:00 p.m.

Featuring Campus Cluster
Lesson notes: Single page

Scientific Computing on a Cluster

Mar. 2, 11:00 a.m.–1:00 p.m.

Featuring Campus Cluster
Lesson notes: Single page

Threaded Parallel Computing for Engineers

Mar. 9, 11:00 a.m.–1:00 p.m.

This lesson on OpenMP (and the next on MPI) are available in an ipython notebook. To view the lesson using one of the EWS machines, execute the following commands in the terminal.

module load gcc
source /class/cs101/etc/venv/cse/bin/activate /class/cs101/etc/venv/cse/
cd ~/Documents
mkdir hpc-sp17
cd hpc-sp17
wget -O omp-c.ipynb https://github.com/uiuc-cse/hpc-sp17/blob/master/lessons/openmp/omp-c.ipynb?raw=true
jupyter notebook omp-c.ipynb

A static view of the notebook is also available:
Static View

If you are running on your own computer and already have OpenMP and the jupyter notebook installed, simply navigating to your desired folder and using the last two lines is sufficient. If you are on Windows, note that the wget command will not work, but you should be able to type the link into a browser and copy all of the text into a file named omp-c.ipynb.

OpenMP on OS X

If you are using a personal laptop computer running OS X operating system, you have to install GNU GCC without multilib support. The reason behind this is that clang — the default compiler on a Mac computer — does not support OpenMP. Moreover, gcc is just a symbolic link to clang. The easiest way to install GNU GCC is to use Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor  ; # fix as many errors/warnings as possible
brew install gcc --without-multilib

Distributed Parallel Computing for Engineers

Mar. 16, 11:00 a.m.–1:00 p.m.

The Message-Passing Interface is the de facto standard for all large-scale distributed-memory cluster computing. We will examine the basics of this standard in C (and can touch on C++ and Fortran), as well as discuss some numerical coding applications and considerations. Programming experience with C or C++ is assumed.

To view the lesson using one of the EWS machines, execute the following commands in the terminal

module load mpich2
source /class/cs101/etc/venv/cse/bin/activate /class/cs101/etc/venv/cse/
cd ~/Documents
mkdir hpc-sp17
cd hpc-sp17
wget -O mpi-c.ipynb https://github.com/uiuc-cse/hpc-sp17/blob/master/lessons/mpi/mpi-c.ipynb?raw=true
jupyter notebook mpi-c.ipynb

If you prefer to use openmpi instead of mpich2, you can can change that in the first line. A static view of the notebook is also available:
Static View

MPI on OS X:

If you are using a personal laptop computer running OS X operating system, you have to install an mpi compiler. The easiest way to get it on a Mac is to use Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor  ; # fix as many errors/warnings as possible
brew install gcc --without-multilib