Niveau d'étude
BAC +5
ECTS
3 crédits
Composante
Sciences économiques, gestion, mathématiques et informatique
Volume horaire
36h
Période de l'année
Enseignement dixième semestre
Description
Ce module a pour but de présenter différentes architectures distribuées en continuation des notions vues dans les années précédentes et les complémenter. Ainsi le module de Programmation Concurrente introduit des moyens de paralléliser des traitements sur une même machine en dupliquant des flots de traitement sur des données partagées. Avec ce module, nous étudions les moyens de partager et/ou répartir efficacement des données sur plusieurs machines pour paralléliser des traitements impossibles à effectuer sur une seule machine.
Objectifs
Les objectifs sont donc d’étudier différents modèles de programmations distribuées comme les modèles d'architecture à base de code événementiels (tel que “Function-As-A-Service” dans le clouds), d'architecture à modèle d'échange de message et ou de données (tel que MPI ou l’actor model de Akka pour java et scala), d’architecture à base d'événements et de publication/distribution (tel que Kafka), d'architecture à base de boucle Map/Reduce (tel que hadoop), d'architecture Batch (tel que Sparks), ou d’architecture à mémoire partagée.
Il s’agit donc d’étudier la conception et la vérification d'applications distribuées et concurrentes (sur plusieurs machines ayant plusieurs processeurs). On cherche à optimiser les distributions, les traitements et les collectes des données. Ainsi que les problèmes qui peuvent survenir pour la concurrence de traitement lorsque les données sont fortement liées.
Enfin il y aura discussion des performances des différents modèles et des exemples de cas applicatifs saillants.
Évaluation
Modalités : Mixte : CC + CT
SESSION 1 :
Contrôle Continu
• Type : Écrit, QCM, Oral, Dossier
• Durée : 2h00
• Précisions : Une durée indicative de 2h00, susceptible d’être ajustée en fonction des contraintes pédagogiques, matérielles ou logistiques, dans le respect des M3C applicables.
Contrôle Terminal
• Type : Écrit
• Durée : 2h00
• Précisions : Une durée indicative de 2h00, susceptible d’être ajustée en fonction des contraintes pédagogiques, matérielles ou logistiques, dans le respect des M3C applicables.
Régime Dérogatoire
• Type : Écrit
• Durée : 2h00
• Précisions : Une durée indicative de 2h00, susceptible d’être ajustée en fonction des contraintes pédagogiques, matérielles ou logistiques, dans le respect des M3C applicables.
SESSION 2 :
• Type : Écrit
• Durée : 2h00
• Précisions : Une durée indicative de 2h00, susceptible d’être ajustée en fonction des contraintes pédagogiques, matérielles ou logistiques, dans le respect des M3C applicables.
Utilisation de l'intelligence artificielle :
L’utilisation de l’Intelligence Artificielle est interdite lors des évaluations.
Heures d'enseignement
- CMCM18h
- TDTD18h
Pré-requis obligatoires
Programmation Concurrente (S5)
Architectures Logicielles (S8)
IVCCC (S8)
Compétences visées
- Étude des différents modèles (Mapreduce, Batch, MPI, composants logiciels, …) .
- Comprendre la notion de distribution des données, les contraintes des différents modèles de traitements, et l’impact sur les traitements distribués .
- Pouvoir décider d’un modèle adapté en fonction du traitement et des données.
