University of Heidelberg

Introduction to GPU Accelerated Computing WS 2020/2021 Block Course with Exercises

NEWS: All registered participants are accepted, we have three groups now, see names of tutors below.
Full ONLINE Block Course, March 1-5, 2021;
Begin: Monday, March 1, 10:15;
End: Friday, March 5, 13:00;
Time: Monday - Thursday 10-17, Friday 10-13
The Course will be organized via zoom ; access links will be emailed shortly before the first lecture.

Your personal laptop or desktop should be used in the course to connect to our GPU supercomputer (kepler cluster of ARI/ZAH). Please prepare to use ssh, do you know how to do this? Under Linux it is quite easy, but under Windows you may have to install a putty client (see also https://www.wikihow.com/Use-SSH and https://putty.org/ ). Your own laptop or desktop is needed for zoom, for ssh terminal connections, and for some data analysis; all numerical experiments will be done on the kepler cluster (if you prefer, data analysis can also be done there).

Files: Starting Instructions for Lecture and Tutorials (Mar. 1)
XX CUDA Error Check Routine, see RocketChat
XX Lecture Slides Jason Sanders complete
XX On the Histogram Programs (a chapter of Jason Sanders' book)
Slides of lecture: March 1 , March 2 , March 3 , March 4 (NBODY) , March 5
Lecture Whiteboard Collection of Figures
NBODY6++ Experiment: Description March 4, 2021
XX Zoom Recordings 2021, mp4:
360 MB Morning March 1 , 86 MB Afternoon March 1
354 MB Morning March 2 , 102 MB Afternoon March 2
293 MB Morning March 3 , 50 MB Afternoon March 3
401 MB Morning March 4 , 371 MB Afternoon March 4
146 MB Morning March 5
More informations on CUDA profiling and streams, JSC/NVIDIA
XX NVIDIA Slides on User API's
(Notice: the file linked before is outdated; more recent informations can be found: https://docs.nvidia.com/ and https://docs.nvidia.com/cuda-libraries/
XX Wenmei Hwu Lecture

Additional supplementary informations:
User Handbook kepler cluster
NBODY6++ Technical Manual
NOTE: The ftp link given in this manual is dead. Use now
Long Wang's github source
XX : These files are password protected, the password has been sent to registered participants.

Summary: We will learn the basic technique to use GPU (graphical processing units, graphics cards) for numerical accelerated computing at the example of CUDA - an extension of C. The course is inspired by Jason Sanders Lecture, but not identical to it.
Enrolment: Please use this link: https://uebungen.physik.uni-heidelberg.de/v/1194
Lecturer: Prof. Rainer Spurzem; ZAH/ARI, Mönchhofstr. 12-14, 69120 Heidelberg
Email: spurzem@ari.uni-heidelberg.de
Teaching Assistants: Katja Stock katja.stock@uni-heidelberg.de
Peter Lysakowski peter.lysakovski@uni-heidelberg.de
Albrecht Kamlah albrechtk@hotmail.de
and also the lecturer Rainer Spurzem spurzem@ari.uni-heidelberg.de
we will help in the afternoon hands-on sessions for problems and answer questions.
Time and Place: Lecture: Monday - Friday, March 1-5, 2021: 10:15 - 13:00;
Exercises: Monday - Thursday, March 1-4, 2021: 14:15 - 17:00; (no exercises Fri afternoon!)
both lecture and exercises will be organized online via zoom
Requirements: Basic knowledge of a higher programming language such as C, C++, Fortran or similar

Topic: We will learn the basic technique to use GPU (graphical processing units, graphics cards) for numerical accelerated computing at the example of CUDA - an extension of the C programming language. Also some general ideas of parallel programming will be discussed. GPU accelerated parallel computing is a technique used in many areas of computational physics and astrophysics. After the basic introduction one or two application examples will be presented. This is a four day block course with lectures in the morning and practical hands-on exercises in the afternoon. Topics: Parallel Computing, GPU Hardware, Elements of CUDA Language, Data Transfer, Vector and Matrix Operations, Simple Application for N-Body Problem.
Literature: CUDA by Example, of Jason Sanders and Edward Kandrot . Our course is inspired by this book and lectures of the authors, will cover much less details, but go for some topics beyond the content of the book; also we will learn an example astrophysical application.


(Responsible for contents: Rainer Spurzem )
Contact: D. Möricke
to top of page