Introduction
Deux objectifs couplés
Les TPs associés au cours 4M053 “Calcul scientifique pour les grands systèmes linéaires” ont deux objectifs :
- 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, …)
- Analyser le comportement des solveurs et des méthodes de stockage à l’aide de cette bibliothèque
Langages choisis
Pour le développement : 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.
Pour l’analyse : Python
, Julia
, MATLAB
, …
À vous de décider le langage que vous préférez pour afficher les courbes et traiter les données. Nous vous incitons à utiliser Python avec les bibliothèques Matplotlib pour l’affichage et Numpy pour toute opération de calcul scientifique (matrice, vecteur, …). À noter que Julia peut également appeler Matplotlib.
Dans la rubrique d’aide, nous fournissons un script Python permettant de lire un fichier JSON, d’en extraire des données et d’afficher une courbe.
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 (workflow), alors c’est parfait ! Autrement, nous vous suggérons les outils suivants.
Traitement de textes
Un éditeur de textes 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 ! De base, vous disposez de GEdit, mais ce traitement de texte est (trop) basique. Voici trois exemples :
- VSCode : intuitif avec une prise en main rapide et rempli de packages très agréables. VSCode est disponible sous windows, mac et linux. Probablement et malheureusement pas disponible avec les terminaux de l’université.
- Emacs : extrêmement puissant mais avec une courbe d’apprentissage assez raide. Très probablement disponible.
- Vim : tout aussi puissant qu’emacs et avec une courbe d’apprentissage tout aussi raide.
Gérez vos sources avec Git
Stockez votre dépôt sur Github1 ou Gitlab. Notez que des packages pour utiliser Git directement dans le traitement de textes sont disponibles pour VScode, Emacs et Vim. Une section d’aide y est consacrée.
Contribuez !
Vous avez repéré une erreur : grammaire, typo, de mathématiques ou d’informatique ? Ou avez des suggestions ? C’est le moment de participer ! Le code des tps est en accès libre sur github (le lien est aussi fourni sur le menu à droite). Vous pouvez alors soumettre un Pull Request, soit :
- Forker le dépôt dans votre compte github
- Récupérer le code sur votre ordinateur avec
git clone
- Créer une branche dédié
git branch correction
git checkout correction
- Effectuer les modifications
- Versionner et envoyer au serveur
git commit -m "blabla" -a
git push
- Retourner sur le dépôt du cours : on vous propose de faire un Pull Request
- De notre côté, nous validerons (ou pas ;-))
- Via le lien Prose.io à droite (Edit this Page), qui effectuera toutes les étapes précédentes en votre nom.
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 :
-
En tant qu’étudiant(e) vous pouvez souscrire au Student Developper Pack. ↩︎