Programming and Parallel Scientific Computing
Syllabus
The course provides an introduction to C++ programming and algorithms with a focus on scientific computing using Cimlib_CFD. An overview of the C++ language is provided: specification, arithmetics, memory management, object-oriented design for component-based software, and advanced topics using templates. Distributed and shared-memory parallel computing are then approached with exercises related to numerical methods for PDEs.
Schedule
Location: Zoom Visioconference.
Monday 14-16, Other days AM: 10:00-12:00, PM: 13:30-15:30
Week 45 | ||
02. November | Zoom | 14-16: Introduction and Practicalities in Covid-19 times… |
03. November | Zoom | 10-12: Data models and language specification 13:30-15:30: Introduction to development tools and C++ (LAB) |
05. November | Zoom | 14-16: Guided Programming Exercises (LAB) |
Week 46 | ||
09. November | Zoom | 14-16: C++ as procedural language: application to linear algebra |
10. November | Zoom | 10-12: Object-Oriented abstraction for numerical frameworks 13:30-15:30: Object-Oriented Concepts (LAB) |
12. November | Zoom | 10-12: Templates and Meta-programming 13:30-15:30: Applications to compile-time optimizations (LAB) |
Week 47 | ||
16. November | Zoom | 14-16: Computing architectures and Performance |
17. November | Zoom | 10-12: Distributed Memory Programming Models 13:30-15:30: Programming with MPI (LAB) |
19. November | Zoom | 10-12: Shared Memory Programming Models 13:30-15:30: Introduction to OpenMP (LAB) |
Week 48 | ||
23. November | Zoom | 10-12: Project guidance |
26. November | Zoom | 10-12: Project Guidance |
Project deadlines:
- Mini-project: 01. December 2020.
- Final project: 15. January 2021.