Informatique Scientifique pour le calcul
Principe
Ce cours est ouvert à toute personne souhaitant s’initier au calcul scientifique et à la programmation parallèle. Il ne nécessite comme pré-requis qu’une connaissance basique de la programmation.
Dans les différents cursus suivis par les étudiant(e)s en cours de thèse, les compétences nécessaires au développement de codes de calcul scientifique sont rarement acquises. Partant de ce constat, nous proposons un enseignement des connaissances indispensables au développement et à la compréhension des méthodes de l’informatique scientifique moderne, à destination des étudiant(e)s, chercheur(euse)s et enseignants-chercheurs. Acquérir des compétences de développeur scientifique est toutefois un processus long et itératif : il s’agira donc ici de permettre aux chercheur(euse)s et thésard(e)s intéressé(e)s de mettre le pied à l’étrier.
L’ensemble des cours vise à apporter des notions de base pour acquérir :
-
une connaissance minimale des architectures des machines contemporaines, ainsi qu’un minimum de savoir sur les systèmes d’exploitation,
-
une maîtrise de la typologie des langages de programmation, afin de permettre une adéquation optimale avec le domaine d’application visé,
-
une connaissance d’un ou plusieurs langages de programmation, orientée vers les besoins du calcul,
-
des bases en représentation de données utiles, algorithmique et complexité,
-
des compétences en parallélisme en fonction de l’architecture visée,
-
une vision opérationnelle de la mise en oeuvre pratique.
L’enseignement comportera 28h de cours ainsi que 15 heures de TP (MPI) au total, suivant un parcours “à la carte”. Chaque module étant indépendant des autres (sauf pour les séances de TP), chaque personne intéressée par ce cours pourra construire un cursus en fonction de ses besoins.
Intervenant(e)s
- Thierry Dumont (ICJ)
- Anne Cadiou (LMFA)
- Vincent Miele (LBBE)
- Claire Mouton (Creatis)
- Christophe Pera (UCBL, Dépt. de Mécanique)
- Bastien Di Pierro (LMFA)
Horaires et lieu
Les cours auront lieu les jeudis après-midi du 06 octobre 2016 au 09/03/2017 de 14h à 16h dans l’amphithéatre du Batiment Polytech sur le campus de la Doua.
Attention : Le cours parallélisation sur architecture à mémoire distribuée du 3 novembre aura lieu en salle 15 du Batiment Polytech
Inscription
L’inscription à ces modules se fait par mail à l’adresse suivante : coursed AT math.univ-lyon1 DOT fr
en précisant les cours que vous souhaitez suivre.
Ce cours est gratuit.
Programme
Le programme du cours se découpe en 4 thématiques :
I - Introduction
- 06/10/2016 : Architecture et système
- 13/10/2016 : Bases Unix (lieu : salle 15 du Batiment Polytech)
II - Calcul parallèle
- 20/10/2016 : Parallélisme sur architectures à mémoires partagées
- 03/11/2016 : Parallélisme sur architectures à mémoires distribuées (lieu : salle 15 du Batiment Polytech)
- 10/11/2016 : Bonnes pratiques et utilisation des centres de calculs
- du 17/11/2016 au 15/12/2016 : TP MPI (La salle vous sera communiquée ultérieurement). Horaires : 14h-17h. Prérequis : connaître un langage bas niveau (Fortran/C/C++) codes codes2 programme de convection MPI
III - Langages et calculs haute performance
- 05/01/2017 : Typologie des langages + Bonne pratique de développement (1)
- 12/01/2017 : Programmation orientée objet (C++) 1
- 19/01/2017 : Programmation orientée objet (C++) 2
- 26/01/2017 : Python scientifique 1
- 02/02/2017 : Python scientifique 2
- 09/02/2017 : Calculs Flottants et intensité Arithmétique
- 16/02/2017 : Bibliothèques de calculs
IV - Développement
- 02/03/2017 : Versionnement (git) et intégration continue
- 09/03/2017 : Débogage et Profiling