Study Programmes 2017-2018
INFO0939-1  
High performance scientific computing
Duration :
30h Th, 15h Pr, 20h Proj.
Number of credits :
Master in aerospace engineering (120 ECTS)5
Master in biomedical engineering (120 ECTS)5
Master in data science (120 ECTS)5
Master in electrical engineering (120 ECTS)5
Master of science in computer science and engineering (120 ECTS)5
Master in data science and engineering (120 ECTS)5
Master in computer science (120 ECTS)5
Master in physical engineering (120 ECTS)4
Lecturer :
Christophe Geuzaine
Language(s) of instruction :
English language
Organisation and examination :
Teaching in the first semester, review in January
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, distributed memory programming with MPI, shared memory programming with OpenMP, algorithms for ordinary differential equations, algorothms for partial differential equations, direct and iterative linear solvers.
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), programming with BLAS and LAPACK libraries 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 the muticore (shared memory) programming paradigm using OpenMP, and the distributed memory programming paradigm using MPI.
Prerequisite knowledge and skills :
Mathematical analysis course; Numerical analysis course.
Planned learning activities and teaching methods :
Theory lectures, practical computer sessions, individual and group projects.
Mode of delivery (face-to-face ; distance-learning) :
Face-to-face.
Recommended or required readings :
Cf. course website.
Assessment methods and criteria :
Written project reports
Work placement(s) :
Organizational remarks :
This course is taught in English.
Contacts :
Prof. C. Geuzaine (cgeuzaine@ulg.ac.be)