Duration
30h Th, 15h Pr, 20h Proj.
Number of credits
Lecturer
Language(s) of instruction
English language
Organisation and examination
Teaching in the first semester, review in January
Schedule
Units courses prerequisite and corequisite
Prerequisite or corequisite units are presented within each program
Learning unit contents
Description of the course:
This course tackles advanced scientific calculation methods, both from a theoretical point of view and from the point of view of the implementation of high-performance applications.
Table of Contents:
Introduction to high performance scientific computing, parallel computer architectures, latency and bandwidth, spatial and temporal locality, Amdahl's law, strong and weak scaling, distributed memory programming with MPI, shared memory programming with OpenMP, introduction to GPU computing.
The course uses the C programming language for the implementation of algorithms, both serial and parallel. Practical work covers the use of parallel computers (UNIX system, remote login, command line, job scheduler, Git version control system) and the parallelisation of algorithms using MPI and OpenMP.
Learning outcomes of the learning unit
By the end of the course the students will have studied various advanced scientific computing algorithms. They will have learned the basics of their efficient implementation on serial and parallel computers, and will be familiar with muticore (shared memory), distributed memory and GPU programming paradigms.
This course contributes to the learning outcomes I.1, I.2, II.1, II.2, II.3, III.1, III.2, III.3, IV.1, VI.1, VI.2, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5 of the MSc in aerospace engineering.
This course contributes to the learning outcomes I.1, I.2, II.1, II.2, II.3, III.1, III.2, III.3, IV.1, VI.1, VI.2, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5 of the MSc in biomedical engineering.
This course contributes to the learning outcomes I.1, I.2, I.3, II.1, II.2, II.3, III.1, III.2, III.3, IV.1, VI.1, VI.2, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5 of the MSc in data science and engineering.
This course contributes to the learning outcomes I.1, I.2, II.1, II.2, II.3, III.1, III.2, III.3, IV.1, VI.1, VI.2, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5 of the MSc in electrical engineering.
This course contributes to the learning outcomes I.1, I.2, II.1, II.2, II.3, III.1, III.2, III.3, IV.1, IV.3, VI.1, VI.2, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5 of the MSc in computer science and engineering.
This course contributes to the learning outcomes I.1, I.2, II.1, II.2, II.3, III.1, III.2, III.3, III.3, IV.1, VI.1, VI.2, VI.4, VII.1, VII.2, VII.3, VII.4, VII.5 of the MSc in engineering physics.
Prerequisite knowledge and skills
MATH0006 (Introduction to numerical analysis), MATH0504 (Applied mathematics) and INFO2009 (Introduction à l'informatique).
Planned learning activities and teaching methods
Theory lectures, practical computer sessions and programming project. The projet is assigned early in the quadrimester, and is evaluated during the oral exam.
Mode of delivery (face to face, distance learning, hybrid learning)
Face-to-face and/or online. See the course website for up-to-date information.
Course materials and recommended or required readings
Cf. course website.
Exam(s) in session
Any session
- In-person
oral exam
Work placement(s)
Organisational remarks and main changes to the course
This course is taught in English.
Contacts
C. Geuzaine (cgeuzaine at uliege.be), D. Colignon (david.colignon at uliege.be) and O. Louant (orian.louant at uliege.be).