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

Se connecter
 

Sauvegarde réussie
La notification a été envoyée
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Carlos Vàzquez


PLAN DE COURS

Été 2025
LOG645 : Architectures de calculs parallèles (3 crédits)





Préalables
Programme(s) : 7065,7070,7365,7610
             
  Profils(s) : Tous profils  
             
    LOG320    
             
Unités d'agrément
Total d'unités d'agrément : 58,8 60,0 % 40,0 %




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



Descriptif du cours
Au terme de ce cours, l’étudiante ou l'étudiant aura vu les architectures parallèles modernes, aura acquis et appliqué une méthodologie de conception d’algorithme parallèle ainsi que les techniques d’analyse de performance des systèmes informatique parallèles.

Architectures parallèles modernes : multi-cœurs, multiprocesseurs, grilles de calculs et multi-ordinateurs. Classification de Flynn des architectures parallèles : SIMD, MIMD, MISD et MIMD. Méthodologie de conception d’algorithmes parallèles : partitionnement, communication, agglomération et répartition. Modèles de programmation parallèle : modèle à mémoire partagée, modèle par passage de messages et modèle hybride. Techniques d'analyses quantitatives de programmes parallèles : métriques de performance (temps d’exécution, coût, efficacité, accélération, loi d'Amdahl) et analyse d'extensibilité. Communication interprocessus, problème d’exclusion mutuelle et outils de synchronisation (sémaphores, moniteurs, barrières).

Note sur le préalable :
LOG320 Structures de données et algorithmes (4 cr.) pour les programmes de baccalauréat en génie logiciel, baccalauréat en génie des technologies de l’information et baccalauréat en informatique distribuée; ou
IND105 Architecture des microprocesseurs (3 cr.) pour le programme de baccalauréat en informatique distribuée.



Objectifs du cours

Sensibiliser l'étudiant aux différents aspects de la conception d'algorithmes parallèles et des difficultés posées par le calcul parallèle.

Permettre à l'étudiant d'acquérir les principales techniques de développement parallèle.

Permettre à l'étudiant d'acquérir les notions conceptuelles reliées aux architectures multiprocesseurs et multicoeurs.




Stratégies pédagogiques

Le cours se divise en deux parties, la première sous forme magistrale de trois (3) heures et demie par semaine, pour une durée de treize (13) semaines. L'autre partie se tiendra dans le laboratoire et sera de deux (2) heures par semaine, comprenant douze (12) séances de laboratoire. Elle permettra à l'étudiant de mettre en pratique les concepts vus en classe.




Utilisation d’appareils électroniques

Aucun enregistrement (photographie, film ou audio) ne sera toléré.




Horaire
Groupe Jour Heure Activité
01 Lundi 18:00 - 20:00 Laboratoire
Jeudi 18:00 - 21:30 Activité de cours



Coordonnées du personnel enseignant le cours
Groupe Nom Activité Courriel Local Disponibilité
01 Camille Coti Activité de cours camille.coti@etsmtl.ca A-4614



Cours

Introduction au traitement parallèle, architecture maté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 (notés) :

SIMD et Cuda : 3 séances

Concurrence, algorithmes parallèles, pthread : 1 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.




Utilisation d'outils d'ingénierie

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




Évaluation
Quizz (3) 15 %

Examen intra 1

10 %
Examen intra 2 20 %
Examen final 30 %
Laboratoires 25 %

Les laboratoires seront effectués individuellement et en présence.

Les trois (3) examens et les quiz sont en présence. Une calculatrice est permise.




Dates des examens intra
# Intra Groupe(s) Date
1 1 29 mai 2025
2 1 3 juillet 2025



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : https://www.etsmtl.ca/programmes-et-formations/horaire-des-examens-finaux


Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.5/ cycles supérieurs, article 6.5.2) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignante ou l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.

Dispositions additionnelles

Pour les laboratoires, la politique de retard est la suivante :

Retard de moins de 24 heures : perte de 5 % par heure jusqu'à concurrence de 20 %;
Retard de plus de 24 heures, mais moins de 48 heures (inclus) : perte de 40 %;
Retard de plus de 48 heures : perte de 100 %.

 




Absence à une évaluation

Afin de faire valider une absence à une évaluation en vue d’obtenir un examen de compensation, l’étudiante ou l’étudiant doit utiliser le formulaire prévu à cet effet dans son portail MonÉTS pour un examen final qui se déroule durant la période des examens finaux ou pour tout autre élément d’évaluation surveillé de 15% et plus durant la session. Si l’absence concerne un élément d’évaluation de moins de 15% durant la session, l’étudiant ou l’étudiante doit soumettre une demande par écrit à son enseignante ou enseignant.

Toute demande de validation d’absence doit se faire dans les cinq (5) jours ouvrables suivant la tenue de l’évaluation, sauf dans les cas d’une absence pour participation à une activité prévue aux règlements des études où la demande doit être soumise dans les cinq (5) jours ouvrables avant le jour de départ de l’ÉTS pour se rendre à l’activité.

Toute absence non justifiée par un motif majeur (voir articles 7.2.6.1 du RÉPC et 6.5.2 du RÉCS) entraînera l’attribution de la note zéro (0).




Infractions de nature académique
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiantes et les étudiants doivent consulter le Règlement sur les infractions de nature académique (www.etsmtl.ca/a-propos/gouvernance/secretariat-general/cadre-reglementaire/reglement-sur-les-infractions-de-nature-academique) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet. À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et tous les membres de la communauté étudiante sont invités à consulter la page Citer, pas plagier ! (www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).

Systèmes d’intelligence artificielle générative (SIAG)
L’utilisation des systèmes d’intelligence artificielle générative (SIAG) dans les activités d’évaluation constitue une infraction de nature académique au sens du Règlement sur les infractions de nature académique, sauf si elle est explicitement autorisée par l’enseignante ou l’enseignant du cours.



Documentation obligatoire

Aucune documentation obligatoire.




Ouvrages de références

EIJKHOUT, V,,  The art of HPC, Volume 2: Parallel Programming for Science and Engineering, 2023 https://github.com/VictorEijkhout/TheArtofHPC_pdfs/blob/main/vol2/EijkhoutParallelProgramming.pdf

FOSTER, I., Designing and Building Parallel Programs. Addison-Wesley Publishing Company, 1995.

FOSTER, I., GROPP, W., KENNEDY, K., WHITE, A., DONGARRA, J., FOX, G., TORCZON, L., Sourcebook of Parallel Computing. Morgan Kaufmann, 2003.

QUINN, M.J., Parallel programming in C with MPI and OpenMP. McGraw-Hill, 2004.

LIN, C. & L. SNYDER, Principles of Parallel Programming. Addison-Wesley Publishing Company, 2008.

David B. KirkWen-mei W. HwuProgramming Massively Parallel Processors, Second Edition: A Hands-on Approach, Morgan Kaufmann; 2 edition, 2012

PACHECO, PETER, An Introduction to Parallel Programming, Morgan Kaufmann; 1 edition, 2011

Matthew Scarpino, OpenCL in Action, Manning Publications Co., 2012

GENGLER, M., UBÉDA, S. et DESPREZ, F., Initiation au parallélisme : Concepts, architectures et algorithmes. Masson, 1996.

COULOURIS, G., DOLLIMORE, J. & KINDBERG, T., Distributes Systems: Concepts and Design. 4th Ed., Addison-Wesley Publishing Company, 2005.

SILBERSCHATZ, A., GALVIN, P.B. et GAGNE, G., Principes des systèmes d'exploitation avec Java. 6e Ed., Vuibert, 2008.

LEWIS, B. & D.J. BERG, Multithreaded Programming with PThreads. Sun Microsystems, 1998.

Multithreaded Programming Guide. Sun Microsystems Inc., 1994.

SNIR, M., S.O. STEVEN., H.L. DAVID WALKER & J. DONGARRA, MPI: The Complete Reference. The MIT Press, 1996.

GROPP, W., E. LUSK & A. SKJELLUM, Using MPI. The MIT Press, 1999.

GROPP, W., E. LUSK & A. SKJELLUM, Using MPI-2. The MIT Press, 1999.

 

BLAESS, C.: Programmation système en C sous Linux Signaux, processus, threads, IPC et sockets. Eyrolles. 2005

DESPREZ, F., GENGLER, M, Ubéda, S.: Initiation au parallélisme. Concepts, architectures et algorithmes. Masson. 1996.

ROBEY, R. & ZAMORA, Y.: Parallel and high performance computing. Manning publications. 2021.

TANENBAUM, A.: Architecture de l'ordinateur. Pearson. 2005




Adresse internet du site de cours et autres liens utiles

Certains documents pertinents au cours (mémos, exercices, solutionnaires, énoncés de laboratoires, fichiers d'exemples, etc.) seront placés régulièrement sur le site Web du cours (Moodle). Il est de la responsabilité de l'étudiant de le consulter.

Site de cours : https://ena.etsmtl.ca/course/view.php?id=26044