The summer school in Armenia, brings together academic expertise from the University Toulouse 3 and the French University in Armenia. The workshop will provide introductory-level courses on Data Assimilation and High-Performance Computing. By providing foundational education and laying the groundwork for a CIMPA school. This project aims to support long-term development in the field of applied data science, benefiting students, faculty, and the broader academic community in Armenia and border countries. The course is designed for students in their first year of the Master's program in mathematics or numerical computing, but we also warmly welcome highly motivated students in their final year of their bachelor's degree.
-
Lectures 1 Introduction to data assimilation
Jérôme Fehrenbach ( IMT Toulouse) and Elisa Gulgulyan ( UFAR Yerevan)
This course will provide the main theoretical insights that are behind variational data assimilation. These keys concepts will be illustrated by toy examples during numerical sessions. The mathematical prerequisites are: matrix calculus, elementary Ordinary Differential Equations, gradient and partial derivatives. The hands-on sessions will use the language Python together with the libraries numpy, scipy, matplotlib. It is recommended to have the spyder interface installed www.spyder-ide.org
Course outline
- Introduction: examples, variational formulation, Bayesian interpretation
- Optimization basics: gradient descent, constrained optimization, Gauss Newton algorithm
- Numerical solution of ODEs with Python
- Toy optimization examples with Python
- Derivation of the tangent model with examples
- Derivation of the adjoint model with examples
- Implementation of a tangent model
- Implementation of an adjoint model
- One data assimilation test case
-
Lectures 2 Introduction to HPC computing
Hrachya Astsatryan ( National academy of sciences of Armenia) and Hélène Hénon ( INRIA Grenoble )
Course outline
- Introduction to High-Performance Computing
- Concepts and importance of HPC
- Overview of HPC hardware and software
- Access and use of HPC resources
- Performing basic tasks on an HPC cluster
- Introduction to parallel computing
- Practical exercises with a simple parallel program
- Parallel Programming and Applications
- Understanding parallelism and concurrency
- Introduction to parallel programming models (e.g. MPI)
- Writing parallel code in MPI
- Introduction to advanced HPC topics (e.g. GPU computing, distributed computing)
- Debugging and profiling parallel programs
- Real-life HPC applications
- Linking data simulation with HPC