Logo ÉTS
Session
Cours
Responsable(s) Carlos Vàzquez

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement





Cours

Introduction au traitement parallèle, architecture mathérielle des machines parallèles, classification des architectures parallèles,

Modèles de programmation parallèle, pattrons d'applications de calcul parallèle.

Programmation SIMD sur CPU avec les intrinsèques SIMD et GPU avec Cuda.

Programmation sur mémoire partagée avec les threads POSIX et OpenMP.

Programmation sur mémoire distribuée avec MPI sur communications bilatérales et unilatérales, point-à-point et collectives.

Programmation hybride.

Analyse de performances.

Introduction à des outils de vérification par méthodes formelles.

 

Laboratoires et travaux pratiques

Laboratoires :

SIMD et Cuda : 2 séances

Concurrence, algorithmes parallèles, pthread : 2 séances

OpenMP : 3 séances

MPI : 3,5 séances

Vérification formelle : 0,5 séances

L’objectif principal des laboratoires est de familiariser l’étudiant avec les techniques du traitement parallèle et de ses avantages. Les laboratoires commenceront par quelques exercices pour prendre en main les fonctionnalités du modèle et de l'environnement de programmation parallèle, puis se concentreront sur la parallélisation d'un petit programme, soit évoqué en cours, soit dont la version séquentielle est fournie. L'efficacité de la parallélisation sera à évaluer sur ce programme. Tout au long de ces travaux, les bonnes techniques de programmation parallèle seront présentées et mises en œuvre.

NOTE : Si vous éprouvez des difficultés techniques avec le matériel des laboratoires du département, s.v.p. communiquez le problème à support-logti@etsmtl.ca.

 

Travaux pratiques (notés) :

Programmation SIMD (1)

Programmation sur mémoire partagée (1)

Programmation sur mémoire distribuée (1)

L'objectif des mini-projets de travaux pratiques est de mettre en œuvre les techniques de parallélisation vues en cours sur un programme de taille plus conséquente, et d'évaluer ses performances. En plus du code, les étudiants devront remettre un rapport où ils présentent cette évaluation de performances.


Utilisation d'outils d'ingénierie

Les laboratoires sont développés avec les langages C et C++ dans un environnement UNIX/Windows.