Theme: Programming

Numerical computing

Level: Intermediate

Typical duration: 2 days

Lectures: 8h

Labs: 8h

Course code: PR07

Maintaining control over numerical computation is an art in itself. This course provides an in-depth tutorial on the subject, supported by 8 hours of practical hands-on labs.

Training topics

Numerical computing

We start with fundamentals of floating point and the standards used currently as well as in the past. Since complex numerical code is often a matter of legacy, we discuss how to take control of results and ensure consistency. The course also covers the key concepts of the "right result" and the "same result". We discuss numerical algorithms that allow for high-precision operations, and demonstrate how precision is not by any means guaranteed by the number of bits in a floating point number. Finally, we touch on coherency aspects in symmetrical computing which, in a typical scenario, would exist in any co-processing or acceleration scenario.



After the course, the students will:
- Exercise direct control over their numerical computation
- Use existing numerical software and libraries to accelerate and improve the development or tuning process
- Understand advanced concepts of floating point computation, including pitfalls, coherency and reproducibility
- Employ compilers and their advanced options to improve and control floating point

Training concepts

fundamentals, compiler control, costs, reproducibility, good and bad algorithms, correctness, risks and successful scenarios; useful software and libraries
floating point debugging