Introduction to High Performance Computing

The syllabus and some lecture notes.

You should be familiar with some of the most basics of UNIX. In particular on working with the terminal. Here some links to a simple tutorial:

Tutorial 1: Listing files and directories. Making and changing directories.

Tutorial 2: Copying, moving and deleting files. Displaying the contents of a file on the screen

Tutorial 3: Redirecting output and using pipelines.


If you are not familiar with VIM then use this course as a chance to change this. Learn VIM

For the computer lab sessions we provide some minimalistic supplementary material.

Computer Lab Sessions:
Von Neumann Architecture (VNA)
VNA: Integer Arithmetic
VNA: Conditional Jumps
VNA: Control Structures
Session 5
Holiday
Introduction to C (C11)
C11: Function Calls
C11: Arrays, Memory Allocation

VNA/C11: More on function calls

C11: Representing vectors and matrices

Some BLAS Level 1 functions

Concept of a benchmark
CPU Caches: Optimized matrix vector product
Application: Unblocked LU factorization

Triangular Matrix Vector Solvers (TRSV)

Applying a pivot vector (LASWP)

Solving a system of linear equations
Unblocked LU factorization based on GEMV and TRSV

General MatrixMatrix Product (GEMM): Simple Cache Optimization.
GEMM: Advanced Cache Optimization (Part I)
GEMM: Advanced Cache Optimization (Part II)
GEMM: Optimized Micro Kernel (Part I)
Session 19
GEMM: Optimized Micro Kernel (Part II)
Session 20
Building libraries (ulmBLAS)
Session 21
ulmBLAS: Providing a Fortran interface
Session 23
Final Benchmarks and Outlook
