Building 20.30, Room 3.61
Wednesday, 2pm - 3:30 pm
Contact: email@example.com SEND ME AN EMAIL IF YOU WANT TO TAKE THIS CLASS!
Office Hours: after the course, or by appointment (Office 3.017 in 20.30)
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.
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)
GFLOPs, Moore’s Law, Amdahl’s Law, Performance tools, Performance Modeling, Roofline Model
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)
Usually weekly (2 weeks for completion).
Lowest grade will be dropped.
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 firstname.lastname@example.org.
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.
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.