PPSC 2020F

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.