Programming and Parallel Scientific Computing
Syllabus
The course provides an introduction to C++ programming and algorithms with a focus on scientific computing. An overview of the C++ language is provided: specification, arithmetics, memory, performance, object-oriented design for component-based software, and advanced topics in numerics using templates. Distributed and shared-memory parallel computing are then approached with exercises related to numerical methods for PDEs.
Schedule
Location: I/E102 + Zoom Visioconference.
Time: AM: 09:00-12:00, PM: 13:30-16:30
| Week 46 | ||
| 13. November | I/E102 | AM: Introduction to shell and git (Jonathan Viquerat) |
| I/E102 | PM: Introduction to supercomputing, finite-precision arithmetics and data models | |
| 16. November | I/E102 | AM: Procedural language programming: application to linear algebra |
| Week 47 | ||
| 22. November | I/E102 | AM: Models for parallel computing and performance metrics |
| PM: Distributed Memory Programming Models | ||
| 23. November | I/E102 | AM: Applications of distributed scientific computing (Jonathan Viquerat) |
| I/E102 | PM: Distributed Memory Programming Models | |
| Week 48 | ||
|
27. November |
I/E102 | AM: Shared Memory Programming Models |
| 28. November | I/E102 | AM: Object-Oriented abstraction for numerical frameworks in C++: example of mesh topologies |
| I/E102 | PM: Iterative solvers and applications | |
Project deadlines: TBA.