========================================== 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: +----------------+-----------------------------------------------------+ | __Session 1__ | Von Neumann Architecture (VNA) | +----------------+-----------------------------------------------------+ | __Session 2__ | VNA: Integer Arithmetic | +----------------+-----------------------------------------------------+ | __Session 3__ | VNA: Conditional Jumps | +----------------+-----------------------------------------------------+ | __Session 4__ | VNA: Control Structures | +----------------+-----------------------------------------------------+ | Session 5 | Holiday | +----------------+-----------------------------------------------------+ | __Session 6__ | Introduction to C (C11) | +----------------+-----------------------------------------------------+ | __Session 7__ | C11: Function Calls | +----------------+-----------------------------------------------------+ | __Session 8__ | C11: Arrays, Memory Allocation | +----------------+-----------------------------------------------------+ | __Session 9__ | - VNA/C11: More on function calls | | | - C11: Representing vectors and matrices | +----------------+-----------------------------------------------------+ | __Session 10__ | - Some BLAS Level 1 functions | | | - Concept of a benchmark | +----------------+-----------------------------------------------------+ | __Session 11__ | CPU Caches: Optimized matrix vector product | +----------------+-----------------------------------------------------+ | __Session 12__ | Application: Unblocked LU factorization | +----------------+-----------------------------------------------------+ | __Session 13__ | - Triangular Matrix Vector Solvers (TRSV) | | | - Applying a pivot vector (LASWP) | | | - Solving a system of linear equations | +----------------+-----------------------------------------------------+ | __Session 14__ | Unblocked LU factorization based on GEMV and TRSV | +----------------+-----------------------------------------------------+ | __Session 15__ | - General Matrix-Matrix Product (GEMM): Simple | | | Cache Optimization. | +----------------+-----------------------------------------------------+ | __Session 16__ | GEMM: Advanced Cache Optimization (Part I) | +----------------+-----------------------------------------------------+ | __Session 17__ | GEMM: Advanced Cache Optimization (Part II) | +----------------+-----------------------------------------------------+ | __Session 18__ | 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 | +----------------+-----------------------------------------------------+ :links: syllabus -> http://www.mathematik.uni-ulm.de/numerik/hpc/ss18/HPC0.pdf Tutorial 1 -> http://www.ee.surrey.ac.uk/Teaching/Unix/unix1.html Tutorial 2 -> http://www.ee.surrey.ac.uk/Teaching/Unix/unix2.html Tutorial 3 -> http://www.ee.surrey.ac.uk/Teaching/Unix/unix3.html Learn VIM -> http://www.openvim.com supplementary material -> doc:supp Session (\d) -> doc:session0$1/page01 Session (\d\d) -> doc:session$1/page01