Harnessing Inexactness
in Scientific Computing


Inexactness is ubiquitous in scientific computing: modelization, discretization, and rounding errors all contribute to making scientific simulation inherently inexact. As a result, it is common for many algorithms to oversolve the problems: they are much more accurate than they need to be. Approximate computing harnesses inexactness to dramatically reduce the resource consumption of computational science and engineering applications. However, using inexactness blindly would also dramatically reduce the accuracy !

This course covers both the fundamental theoretical questions related to the use of approximations in scientific computing (where can inexactness be tolerated ? to what extent?), as well as the practical challenges in implementing these methods at scale for real-life applications. To achieve these goals, it is indispensable to consider the entire application chain: from nonlinear optimization processes to their underlying linear algebra building blocks. This course will therefore review a wide range of tools (low-rank approximations, low and mixed precision algorithms, sparsity, quantization, randomization, stochastic algorithms, dimensionality reduction, etc.) and illustrate how they can help scientific simulation into solving urgent societal and technological problems: climate and weather prediction, nuclear safety, autonomous driving, medical imaging, the design of safe and energy-efficient vehicles, etc.

At the end of the course, you will be able to:



  1. Introduction (TM+ER)
  2. Summation algorithms (TM)
  3. Direct methods for linear systems (TM)
  4. Iterative methods for linear systems (TM)
  5. Exploiting data sparsity (TM)
  6. Iterative refinement (TM)
  7. Multigrid methods (ER)
  8. Orthonormalization and least squares (TM+ER)
  9. Communication-avoiding and randomized algorithms (TM)
  10. Optimization methods (ER)
  11. Neural networks (ER)
  12. Trust region methods (ER)
  13. Ill-posed problems (ER)
  14. Multilevel optimization (ER)
  15. Sparse approximation (ER)
  16. GPU computing (TM)