### Numerical Linear Algebra for Scientific High Performance Computing (Sommersemester 2021)

• Dozent*in:
• Veranstaltungen: Vorlesung (0110650)
• Semesterwochenstunden: 2

Given the current situation with all on-site lectures being suspended, we will realize this lecture virtually, using zoom.

The meeting ID is https://kit-lecture.zoom.us/j/62622901012

Contact: hartwig.anzt@kit.edu

We will use C / C++ as programming language. You are free to use Java or FORTRAN, if you prefer (I recommend C, though!).

You need access to computing resources (including an NVIDIA GPU). If you don’t have, please ping me.

The lecture slides will be collected in the git repo https://git.scc.kit.edu/nla4hpc/spring-2021/lecture-slides

The homework assignments will be available in the git repo https://git.scc.kit.edu/nla4hpc/spring-2021/exercises

Termine
Vorlesung: Montag 8:00-9:30

Programming:
Shared Memory/Distributed Memory, Bulk-Synchronous Programming Model, Synchronization, Mutex, One-sided Communication, OpenMP, Fork-Join Model, Private/Public Variables, Map-Reduce, Scheduling, MPI, CUDA (GPU Programming)
Performance:
GFLOPs, Moore’s Law, Amdahl’s Law, Performance tools, Performance Modeling, Roofline Model

Dense NLA:
BLAS operations, LAPACK, ScaLAPACK, LU/QR/Cholesky decomposition, Singular Value Decomposition (SVD)

Iterative Sparse Linear Algebra:
Fix-Point Iteration, Kylov subspace methods, ILU preconditioning, Jacobi/block-Jacobi preconditioning, Finite differences (Laplace), Domain Decomposition Methods (Additive/Multiplicative Schwarz)

# Prüfung

Homework:

Usually weekly (2 weeks for completion).
Must be sent in on time (no late assignments).
Don’t copy someone else’s work.
Can include programming, theoretical work, running a program, but always a detailed documentation and analysis.
Programming in C, FORTRAN, Java.
Send the complete assignment package (code + instructions + documentation/ analysis) to hartwig.anzt@kit.edu.

Project:

Topic of general interest to the course.
The idea is to read three or four papers from the literature (references will be provided).
Implement the problem/application.
New ideas and extensions are welcome, as well as optimized implementations of existing algorithms.
I.e., the class project can be a HPC implementation of a different project you are working on (Master’s thesis, Seminar, etc.)
I will also distribute a list with project ideas.
Synthesize them in terms of a report (~10-15 pages).
Present your report to class (~30 mins).
Presentation accounts for 30% of final grade.
Project paper accounts for 40% of final grade.

# Literaturhinweise

The Sourcebook of Parallel Computing, Edited by Jack Dongarra, Ian Foster, Geoffrey Fox, William Gropp, Ken Kennedy, Linda Torczon, Andy White, 2002, 760 pages, ISBN 1-55860-871-0, Morgan Kaufmann Publishers.

Introduction to High-Performance Scientific Computing, by Victor Eijkhout with Edmond Chow, Robert Van De Geijn, February 2010.

Introduction to High Performance Computing for Scientists and Engineers, by Georg Hager, Gerhard Wellein, CRC Press, 2010.