ECTS
30 crédits
Composante
ENSEIRB-MATMECA
Code interne
EIS9CISD
Liste des enseignements
Architectures, langages et modèles de programmation
6 créditsAlgorithmique du calcul hautes performances, de la classification et de l'apprentissage
6 créditsEnvironnement d'exécution, d'extraction et de visualisation
6 créditsModules applicatifs
7 créditsUE Langues et culture de l'ingénieur
7 crédits
Architectures, langages et modèles de programmation
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Langages du parallélisme
Composante
ENSEIRB-MATMECA
Ce cours présente les différents langages de parallélisme utilisés aujourd'hui pour paralléliser les applications de simulation.
Le cours sera découpé en trois parties. Les deux premières parties présenteront le modèle Message Passing Interface et OpenMP. La troisième partie étudiera la programmation hybride MPI+X.
Multicoeurs et accélérateurs de calcul
Composante
ENSEIRB-MATMECA
Le cours est décomposé en 2 parties. L'une sur le fonctionnement des multicoeurs généralistes, l'autre sur le fonctionnement des accélérateurs graphiques.
L'objectif de ce cours sera d'une part de présenter ces architectures, et d'autre part d'apprendre à les programmer efficacement à l'aide :
- de flags de compilation
- d'extensions du compilateur (SIMD, fonction intrinsèques),
- d'annotations de code (OpenACC),
- de langages specifiques (CUDA),
- de bibliothèques optimisées (CUBLAS),
- d'outils d'analyse de performances,
- de support d'exécution à base de tâches (StarPU) pour articuler les multicoeurs généralistes et les accélérateurs graphiques.
La description du fonctionnement de ces architectures sera mise en oeuvre par le biais de microbenchmarks, pour bien comprendre le lien entre le code écrit, le code généré par les compilateurs et leurs performances.
Des TPs seront consacrés à l'écriture, au debug, et à l'optimisation de code accéléré sur GPU et sur multicoeurs, ainsi qu'a l'analyse des performances.
Outils et environnements pour le HPC
Composante
ENSEIRB-MATMECA
Apprentissage des outils du HPC, utilisation des clusters de calculs, job schedulers (slurm)
Outils d'analyse des programmes HPC (Intel Vtune, Nvidia nvprof, ...)
Algorithmique du calcul hautes performances, de la classification et de l'apprentissage
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Algorithmique du parallélisme, ordonnancement, structures de données, équilibrage de charges
Composante
ENSEIRB-MATMECA
La démocratisation des machines parallèles a rendu critique la bonne gestion des moyens de calculs. Processeurs, mémoire, bande passante, énergie... Le but de ce cours est de discuter les moyens algorithmiques d'attribution des ressources pour les différentes applications s'exécutant sur ces plateformes.
Parmi les sujets discutés, nous présenterons la manière d'analyser et résoudre algorithmiquement ce type de problèmes. Nous parlerons d'ordonnancement de ressources avec et sans contraintes. Nous parlerons d'hétérogénéité et de hiérarchie mémoire et d'équilibrage de charges.
Analyse de données.
Composante
ENSEIRB-MATMECA
Dans ce cours nous aborderons différentes techniques d'apprentissage statistique. Plus précisément nous nous intéresserons à l'apprentissage non supervisé avec les méthodes d'analyse en composantes principales et de partitionnement et à l'apprentissage supervisé avec les méthodes de régression et de classification. Ces méthodes seront mises en oeuvre lors de 2 séances de TP avec le langage de programmation R. Ensuite, des mini projets vous seront proposés.
Algorithmique numérique
Composante
ENSEIRB-MATMECA
L'objectif du cours est de parcourir les méthodes de résolution de problèmes d'algèbre linéaire dense dans un contexte de calcul haute performance. On s'intéressera particulièrement à la (re)formulation de ces algorithmes dans un contexte parallèle permettant une mise en relation avec les cours d'ordonnancement et d'équilibrage de charges, mais également dans le contexte de modèles de programmation avancés.
Systèmes linéaires
Factorisations triangulaires (Cholesky, LU, ...)
Résolution de systèmes triangulaires
Utilisation de bases orthogonales (QR)
Décomposition en valeurs singulières/propres
Introduction aux tenseurs
Environnement d'exécution, d'extraction et de visualisation
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Introduction à la visualisation scientifique
Composante
ENSEIRB-MATMECA
La visualisation scientifique située à l'interface entre l'informatique scientifique et les mathématiques appliquées est désormais un outil de communication, de compréhension et d'analyse de résultats rendu incontournable pour l'analyse de grands volume de données.
L'objectif de ce cours est de présenter les enjeux, les principes et des solutions logicielles de visualisation scientifique. Différentes notions seront abordées comme les formats des données, les pipelines de visualisation, les algorithmes d'extraction d'information ou encore l’analyse topologique.
Les TD s'intéressent à la compréhension et à l'utilisation de bibliothèques de visualisation ainsi qu’au développement d'un outil permettant de créer ses propres logiciels de visualisation 3D. Des données issues de simulations numériques 3D seront utilisées dans les TD telles que la modélisation de l'impact d'un asteroid dans l'océan ou encore la génération de turbulence dans un fluide en mouvement. Les technologies utilisées seront notamment Python, VTK, Paraview.
Supports pour le traitement de données
Composante
ENSEIRB-MATMECA
L'objectif de ce cours est d'apprendre aux étudiants les concepts de base nécessaires pour traiter des larges quantités de données de façon distribuée.
Pour cela, les points suivants seront discutés :
1. Introduction au big data
2. Le framework Hadoop et le système de fichiers distribué HDFS
3. Le paradigme MapReduce
4. La création d'applications avec Spark
5. Introduction aux bases de données NoSQL
Parcours personnalisé (au choix)
Composante
ENSEIRB-MATMECA
Outils pour l'apprentissage
Composante
ENSEIRB-MATMECA
Ce cours aborde les défis posés par les réseaux neuronaux modernes, qui nécessitent une mémoire et une puissance de calcul importantes, rendant difficile leur déploiement sur des dispositifs mobiles et périphériques. De plus, l'échelle et la complexité croissantes des réseaux neuronaux rendent l'entraînement très exigeant en ressources, créant souvent des goulets d'étranglement qui ralentissent les progrès des applications d'IA. Le cours est divisé en deux parties principales : l'amélioration de l'efficacité de l'inférence et l'optimisation du processus d'entraînement.
Dans la première partie, les étudiants se concentreront sur l'amélioration de l'efficacité de l'inférence en évaluant l'efficacité des réseaux neuronaux et en appliquant diverses techniques de compression, telles que le pruning, la factorisation tensorielle et la quantization, afin de créer des modèles plus petits et plus rapides sans perte de précision. La deuxième partie du cours est consacrée à l'optimisation du processus d'entraînement, en abordant les défis liés à la mise à l'échelle et à la complexité de l'entraînement des modèles d'IA modernes. Les étudiants exploreront des techniques telles que les méthodes d'économie de mémoire, y compris la re-materialization (activation checkpointing) et le offloading, ainsi que différents types de parallélisme—data, tensor, model, et pipeline parallelism—qui sont essentiels pour un entraînement efficace.
Le profilage des réseaux neuronaux pour identifier les goulets d'étranglement est souligné tout au long du cours, aidant les étudiants à comprendre et à résoudre les problèmes de performance tant pour l'inférence que pour l'entraînement. À la fin du cours, les étudiants auront acquis les compétences nécessaires pour optimiser la performance des réseaux neuronaux et réussir le déploiement et l'entraînement de modèles d'IA avancés dans des scénarios réels.
Programmation 3D
Composante
ENSEIRB-MATMECA
Le but de cette UE est de s'initier à l'informatique graphique à travers du cours intégrés et des travaux pratiques. L'initiation porte sur le rendu dit offline avec l'implémentation d'un mini logiciel de lancer de rayon (ray-tracing) ainsi que sur le rendu temps réel à l'aide de GPU via l'API OpenGL.
Modules applicatifs
ECTS
7 crédits
Composante
ENSEIRB-MATMECA
Traitement des données in-situ
Composante
ENSEIRB-MATMECA
L'objectif principal de cette formation est de comprendre le fonctionnement des modèles de visualisation in-situ et de prendre en main un ensemble d'outils permettant leur mise en œuvre. Le cours prend la forme d'une série de TP, clôturé par un mini-projet (application des apprentissages du TP). Nous utiliserons en particulier le logiciel Paraview et la bibliothèque Catalyst. Le mini-projet consistera en la mise en œuvre d'une instrumentation in situ sur un système gravitationnel corpusculaire (un système stellaire en l’occurrence). Si le temps le permet, nous essaierons également d'instrumenter un code de simulation de tokamak (évolution du plasma au sein d'un réacteur à fusion nucléaire).
Fouille, extraction et visualisation
Composante
ENSEIRB-MATMECA
Le but de ce cours est double et s'articulera autour de deux projets.
Le premier projet a pour but de présenter et de mettre en oeuvre quelques techniques d'extraction d'information issues de données textuelles.
Nous verrons dans un premier temps comment des algorithmes éprouvés tels que le modèle Bag-of-Word et le TF-IDF permettent d'extraire des données pertinentes de documents.
Nous aborderons ensuite les méthodes d'embedding vectoriels, en étudiant le modèle Word2Vec, qui permet d'extraire des données contextuelles.
Enfin nous verrons comment exploiter ces informations pour identifier des textes sémantiquement proches ou encore les catégoriser au moyen d'algorithmes de clustering.
Le second projet s'intérressera à un problème similaire, mais dans le cadre de données visuels.
Les cours seront accompagnés de TDs/TPs permettant la mise en oeuvre effective des algorithmes présentés ci-dessus.
Deux projets, l'un sur les données textuelles et l'autre sur les données visuelles, adossés à des données réelles, permettront aux élèves de mettre en application les algorithmes vu en cours, tout en mettant en oeuvre leurs compétences en calcul distribué pour traiter la volumétrie du jeu de données en un temps raisonnable.
Projet Application HPC
Composante
ENSEIRB-MATMECA
L'objectif consiste à étudier les différents niveaux de parallélisation d'une application HPC: vectorisation, multi-thread, mémoire distribuée au sein d'une seule et même application. L'application choisie consiste en l'implémentation de noyaux d'algèbre linéaire eux-même fréquemement au coeur des application de simulation et d'apprentissage à grande échelle.
UE Langues et culture de l'ingénieur
ECTS
7 crédits
Composante
ENSEIRB-MATMECA
LV1 Anglais
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Maitriser l'anglais et connaître d'autres cultures (C10, N1 à N4)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Savoir communiquer avec des personnes de langues et cultures différentes (C10, N2 à N4)
Savoir s'adapter dans différents contextes, dans l'entreprise, à l'international (C10, C12, N1 à N3)
Savoir communiquer avec de spécialistes et non-spécialistes (C12, N1 à N3)
Apprendre à mieux se connaître, à s'autoévaluer, à gérer ses compétences (C13, N2 - N3)
Engagement Etudiant facultatif (Niveau élevé)
Composante
ENSEIRB-MATMECA
Reconnaissance de l'engagement étudiant dans la vie sociale, associative ou personnelle
Chaque élève-ingénieur peut faire une demande de validation des compétences, connaissances et aptitudes qu'il a acquises dans l'exercice des activités suivantes :
activité bénévole au sein d'une association,
activité de promotion de l'école ou de l'établissement,
implication au service de l'école ou de l'établissement,
activité professionnelle,
activité militaire dans la réserve opérationnelle,
engagement de sapeur-pompier volontaire,
service civique,
volontariat dans les armées,
participation aux conseils de l'établissement et des écoles, d'autres établissements d'enseignement supérieur ou des centres régionaux des œuvres universitaires et scolaires.
Un engagement étudiant est considéré de niveau élevé lorsqu'un élève-ingénieur a des fonctions/missions définies et reconnues dans l'exercice de ses activités.
Le module facultatif engagement étudiant donne lieu à une note sur 20 points entraînant un bonus maximum de 1 point/20 à la moyenne de l'UE (Langues et culture de l'ingénieur). La note obtenue à ce module ne peut pas diminuer la moyenne de l'UE (Langues et culture de l'ingénieur).
Engagement Étudiant facultatif (Niveau très élevé)
Composante
ENSEIRB-MATMECA
Reconnaissance de l'engagement étudiant dans la vie sociale, associative ou personnelle
Chaque élève-ingénieur peut faire une demande de validation des compétences, connaissances et aptitudes qu'il a acquises dans l'exercice des activités suivantes :
activité bénévole au sein d'une association,
activité de promotion de l'école ou de l'établissement,
implication au service de l'école ou de l'établissement,
activité professionnelle,
activité militaire dans la réserve opérationnelle,
engagement de sapeur-pompier volontaire,
service civique,
volontariat dans les armées,
participation aux conseils de l'établissement et des écoles, d'autres établissements d'enseignement supérieur ou des centres régionaux des œuvres universitaires et scolaires.
Un engagement étudiant est considéré de niveau très élevé lorsqu'un élève-ingénieur a des fonctions/missions comportant des responsabilités administratives, financières et/ou pénales dans l'exercice de ses activités. Un engagement très élevé doit également comprendre un aspect encadrement et animation.
Le module facultatif engagement étudiant donne lieu à une note sur 20 points entraînant un bonus maximum de 2 point/20 à la moyenne de l'UE (Langues et culture de l'ingénieur). La note obtenue à ce module ne peut pas diminuer la moyenne de l'UE (Langues et culture de l'ingénieur).
Intégrer l'entreprise
Composante
ENSEIRB-MATMECA
Ce module se compose de deux parties complémentaires :
- Projet Professionnel
- Business Challenge.
Partie 1 : PROJET PROFESSIONNEL (4 heures)
Identification des sources de motivation et des forces/faiblesses/opportunités/menaces rencontrées pendant le stage de 1ere année et 2ème année se préparer à l'embauche Construire son pitch et se préparer à la soutenance du projet professionnel.
MODULE 1 :Debriefing du stage 2A,
MODULE 2 : Préparation du pitch en vue de la soutenance de projet professionnel
Partie 2 : BUSINESS CHALENGE (24 heures)
A travers une simulation l'étudiant doit :- Apprendre à développer une stratégie- comprendre les mécanismes de fonctionnement de l'entreprise ( coûts, comptabilité, finances, marketing, production...)- Analyser les résultats- Se sensibiliser au DDRSMieux comprendre les intéractions entre les différentes dimensions d'une entreprise est un des principaux objectifs de Global Challenge. Les participants devront traiter de multiples disciplines liées à la gestion en les intégrant dans une stratégie globale. De plus, les participants devront apprendre à travailler en équipe, afin de mieux analyser les implications opérationnelles et financières de leurs décision.Chaque équipe, regroupée en unité autonome de gestion, doit gérer un ensemble de produits sur un marché virtuel.