VU: Scientific Computing in Mathematics (2h)


Contents: Extended programming with C++, bash, python, sage, matlab and whatever is needed. Project managment with make, development tools and a version control system. Use of available mathematical libraries. Mathematical problem solving by means of scientific computing tools. Special focus on GPU computing, solvers.

Lecturer: Prof. Gundolf Haase, Heinrichstr. 36, Zi 506, Klappe 5178,

Time and place: Tuesday 12:45-14:15 in KFU: SR 11.34

Modus and deadline (Empfehlungen zu VU):

Time table for lectures

March 5
Preliminary discussion of the lecture (your skills, specialization of students in master studies, laptops?, operating system?, topic of bacc./master thesis?).
Potential projects.

Hardware (login from outside KFU only via  VPN):
  • Mephisto at IMSC, or via jupyter-Server des IMWR.
  • Remote login to servers:
    • VPN to KFU is needed: install via VPN Service the software AnyConnect (configure as server: https://univpn.uni-graz.at;   login: KFU E-mail)
    • Linux: use ssh -X  143.50.47.xxx to connect to compute server
    • Windows: Install WinnSSHTerm with a guided installation of further packages (putty, winscp, X-Server)
March 12 
Selected C++ topics:
Memory costs of containers (1, 2, 3); deep copy vs. shallow copy (notes);
nullptr, const_expression, static_assert
smart pointer [Examples: variants_pointer, shared, unique];
exception handling (predefined exceptions, tutorial) [Examples: file_io, myvector];
Multi Threading in C++-17 (Bartek's coding blog, sort) [Example: thread_17]; Linker requires option  -ltbb
Type-checking at compile time: C++17: type_traits, C++20 concepts,
Ranges in C++20.
Weitere Literatur: "The C++ Standard Library"; "C++20: Get the Details"
March 19
Intro into Linux (Wie werde ich UNIX-Guru? (OpenBook):
command line arguments, redirection, pipelining, tools (example; myvector_ext, BinaryMatrix).
bash scripts (ex), make (tutorial), Preprocessor (Howto)
[Mixing of C/C++/Fortran (code)]
April 9
improving scalar product etc. (all Codes, examples).
GPU computing: CUDA, Matlab, python
CUDA: 12.3, docu, Best Practice, Profiler, Debugger,
April 16
Quick entry into concepts of parallel computing: vectorization, shared/distributed ressources, threads/processes. (V 0)
GPU computing: What's special? (V 1, V 3)
First steps in CUDA, improving scalar product (Codes, examples).
April 23
git (basics, simple intro, learn git in 15 min, info)
April 30

May 7
Solvers for large sparse systems: iterative, multilevel, algebraic multilevel
May 14

May 28

June 4

June 11

June 18

Consulting
June 15
Project presentation by students

Task sheets: Subject to change:
Students who are not primarily enrolled at KFU: Guide
Books:


C++:
Python:
Unix:

GPU:

Solver:

Version control systems:



  March 19, 2024