Introduction

Deux objectifs couplés

Les TPs associés au cours 4M053 “Calcul scientifique pour les grands systèmes linéaires” ont deux objectifs :

  1. Implémenter une bibliothèque en C++ pour :
    • Gérer des matrices sous différents formats (stockage, opérations usuelles, …)
    • Résoudre des systèmes linéaires avec les solveurs étudiés en cours (directs, itératifs, …)
  2. Analyser le comportement des solveurs et des méthodes de stockage à l’aide de cette bibliothèque

Langage choisi : C++

Ces TPs vous demandent d’être familié avec au moins un langage compilé (C, C++, Fortran, …) et le langage retenu ici sera le C++. Si vous n’êtes ni familié avec un langage compilé ni avec le C++, vous allez devoir travailler dure pour rattraper le retard : ces TPs ne sont pas des TPs d’informatique ! Rien n’est impossible mais nous ne ferons pas le travail à votre place. Nous avons mis en place une section contenant des liens pour vous aider.

Organisation

La partie “Premiers pas” présente la compilation pour le C++ et surtout introduit une organisation possible pour le code et les fichiers. Les bonnes pratiques de programmation, à prendre dès le début, seront aussi soulignées. Ensuite seulement commencera l’implémentation de la bibliothèque.

Environnement

OS

Les terminaux mis à disposition tournent sous Linux et disposent des outils nécessaires (voir ci-après). Vous pouvez cependant utiliser votre propre machine, mais nous n’assurons pas le SAV dans ce cas et nous vous invitons à utiliser Linux ou Mac OS plutôt que Windows.

Logiciels

Sauf si vous disposez déjà de votre propre environnement de travail (ex. : emacs, vim, …), nous vous suggérons les outils suivants. Remarquez qu’un éditeur de texte peut intégrer un certain nombre d’outils qui peuvent vous aider tels qu’un indenteur automatique, un débogueur, un compilateur, un analyseur statique, un profiler, etc. Maîtriser un (bon) éditeur de texte est un investissement (très) rentable !

  • VSCode pour rédiger le code: intuitif, une prise en main rapide et remplit de packages très agréables. VSCode est disponible sous windows, mac et linux. De base, vous disposez de GEdit, mais ce traitement de texte est (trop) basique.
  • Git pour gérer vos sources et vos versions, couplé avec par exemple un dépôt sut Github1 ou Gitlab. Nous n’avons toutefois et malheureusement pas le temps d’apprendre à utiliser cet outil - pourtant extrêmement utile ! Il faudrait que vous appreniez par vous même.

Comment lire ces TPs

Nous vous conseillons de suivre les étapes dans l’ordre. Tout au long des TPs, des exercices vous seront proposés. Ils sont là pour vous guider et sont indiqués comme cela :

Ceci est un exercice

Parfois, vous rencontrerez des remarques indiquées comme cela…

… Ou bien des astuces …

… Ou encore des avertissements.


  1. En tant qu’étudiant(e) vous pouvez souscrire au Student Developper Pack qui vous offre la possibilité d’obtenir des dépôts privés ^