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 Matrix-Matrix 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
-