The course will provide an introduction into parallel computing. In the beginning the basic concepts of parallel computing will be introduced to provide an understanding of key concepts of parallelism and concepts of computer architecture for parallel execution of tasks. Concepts of parallel efficiency, scalability of codes will be introduced. The basic operations will be taught for writing programs on distributed or shared memory parallel systems. The approach to parallelism will be based on the Message Passing Interface (MPI), which can be used on parallel and shared memory systems. In the course, the working programming language will be Fortran90. Examples will demonstrate the functionality and implementation into parallel codes. The course will provide the lecture content on various levels: • Teaching via Zoom cooperative Web sessions • Online material on Moodle • Work on individual programming projects The programming projects will be provided after the basic introductory part and are related to key concepts from the lecture and motivated from materials or data science topics. The successful participation of the course will require the delivery of a working implementation of the project code and a written report (introduction, problem description, implementation and results section). Literature will be provided as material on Moodle. Consultation hours will be organized on demand for feedback and open questions.
Semester: ST 2024