Programmation simultanée et parallèle

Programmation simultanée et parallèle GIN4100
Enseignant:
Email:
Durée totale du cours: 22.5 H
Option concernée : Ingénierie logicielle
Semestre : 4
Nombre de crédits : 2
Modules

spécialisés

Modules de

base

Sciences et techniques de

l’ingénierie

Préparation à la carrière professionnelle
X

 

Nombre d’heures Activités hors classe
22.5 18
cours TD TP
12H   10H30

 

Code : GIN4100 Programmation simultanée et parallèle

 

Volume Horaire         : 1h 30  cours + Travaux pratiques (par semaine)

Description du cours

Ce cours présente les principaux concepts liés à la programmation parallèle et distribuée basée sur la communication inter-processus. Cette communication peut se faire de deux façons :

  • En partageant l’information : représente la première partie du cours
  • Par le passage des messages : représente la deuxième partie du cours

La première partie traite des outils de communication par échange d’informations. Les deux outils sont des sémaphores et des moniteurs. La deuxième partie traite des outils de communication en transmettant des messages. En règle générale, le passage de messages peut se faire de plusieurs façons. Nous traitons des méthodes suivantes : communication synchrone (Manche), communication asynchrone (port)

Objectifs

À la fin de ce cours, l’étudiant devrait être en mesure de :

  • écrire des programmes parallèles en Java
  • assurer les principes d’exclusion mutuelle, que ce soit en partageant des informations ou par des échanges de

Conditions préalables

Il est recommandé d’avoir une culture générale de base dans :

  • Programmation orientée objet
  • Systèmes d’exploitation

Matrice d’apprentissage

Chapitre Titre Durée Résultats d’apprentissage
 

Chapitre 1

Introduction à la programmation simultanée et parallèle  

6

– Comprendre le parallélisme au niveau du programme ainsi que les différents modes de processus parallèles
 

Chapitre 2

 

Communication par partage d’informations: Sémaphore

 

10

– Maîtriser l’utilisation des sémaphores pour construire des programmes parallèles pour protéger les variables partagées
 

Chapitre 3

 

Communication par partage d’informations : Surveiller

 

10

– élaborer des programmes parallèles à l’aide de moniteurs pour assurer le principe de l’exclusion mutuelle
 

Chapitre 4

 

Communication en passant des messages

 

9

– Développer des programmes parallèles en transmettant des messages en utilisant  les notions de port et de canal

Méthodologies d’apprentissage:

Cours intégré (h) 22h
Travail pratique (h) 10h30
Projet (h) 0
Visites (h) 0

ÉVALUATION : 

Type Couvrant quel  chapitre (s) Les facteurs de pondération
Projet
Travail pratique
À moyen terme Chapitre 1+Chapitre 2 30%
Test oral – –
Examen final Tous les chapitres 70%

 

BIBLIOGRAPHIE ET LOGISTIQUE RECOMMANDÉES :

  • Introduction to Parallel Programming, Morgan Kaufmann, 2011, ISBN 9780123742605, https://doi.org/10.1016/B978-0-12-374260-5.00012-9
  • BUELL, Duncan. Éloge d’une introduction à la programmation parallèle.

Résultats d’apprentissage :

  1. Compréhension des concepts de base : Les étudiants devraient comprendre les concepts fondamentaux de la programmation simultanée et parallèle, y compris les threads, les processus, les verrous, les sémaphores, etc.
  2. Conception d’applications parallèles : Les étudiants devraient être capables de concevoir des applications informatiques qui tirent parti du traitement simultané et parallèle pour améliorer les performances.
  3. Programmation parallèle : Les étudiants devraient être capables de programmer efficacement en utilisant des langages et des bibliothèques qui permettent le parallélisme, tels que OpenMP, MPI, CUDA, etc.
  4. Gestion des problèmes de synchronisation : Les étudiants devraient être capables de gérer les problèmes de synchronisation et d’accès concurrents aux ressources partagées.
  5. Analyse des performances : Les étudiants devraient être capables d’analyser les performances des applications parallèles et de les optimiser si nécessaire.
  6. Architectures parallèles : Les étudiants devraient comprendre les différentes architectures parallèles et être capables de choisir la meilleure approche pour une application donnée.

 

Laisser un commentaire

Défiler vers le haut
Need Help? Chat with us