First week: The basis of good software development
Once again, the Practical Course on Parallel Numerical Methods had to take place in an online format. Although this meant that the common lunch and coffee breaks in the canteen were missing, the participants were able to use the new ENB cluster of the University of Bayreuth, which went online two months earlier. With twelve CPU nodes and one GPU node with a powerful graphics card, this computer is ideally suited for memory-intensive tasks in the field of high-performance computing and artificial intelligence. The integration of this "supercomputer" took place within the HPC research center of the University of Bayreuth.
In the mornings, the theoretical basics were briefly introduced in lectures. Depending on the prior experiences of the students of the Elite Graduate Program “Scientific Computing”, these were new topics or short repetitions. In the first week the basics of good software development in the field of "Scientific Computing" were laid. Among others, the discussed topics included the question how to create and maintain good code with the help of modern software development tools.
Following the practical philosophy of this course, the students spent most of their time implementing, testing, and analyzing their project of a C++ library for solving large dimensional linear systems.
Second week: Parallel programming
In the second week, the participants parallelized their programs. This allowed them to significantly reduce computation times. However, the students also experienced that parallel programs are challenging to write. Errors appeared that they had not previously encountered. They learned that software development consists to a large extent of debugging.
In the last part of the practical course, the students used the ENB-cluster to investigate the performance of their programs on modern supercomputers. Among other things, they examined whether or how their code scales with the number of processors. The results of their analyses and the presentation of their implementations were the content of the final presentations.
Text: Thomas Rau, Supervisor of the programming practical course "Parallel Numerical Methods" in the Elite Graduate Programm “Scientific Computing”.