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

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Carlos Vàzquez


PLAN DE COURS

Automne 2020
LOG645 : Architectures de calculs parallèles (3 crédits)


Modalités de la session d’automne 2020
Pour assurer la tenue de la session d’automne 2020, les modalités suivantes seront appliquées :


La plupart des cours de la session d'automne seront donnés à distance. Les autres seront donnés en présence. Cette information vous a déjà été communiquée.

L’étudiant inscrit à un cours à distance doit avoir accès à un ordinateur, un micro, une caméra et un accès à internet, idéalement de 10Mb/s ou plus.

Les cours à distance pourraient être enregistrés, à la discrétion de l’ÉTS. Le cas échéant, les enregistrements de cours pourraient notamment être rendus accessibles aux étudiants par le biais notamment du portail de l’ÉTS.

La notation des cours sera la notation régulière prévue aux règlements des études de l'ÉTS.

Pour les cours à distance, les examens (intra, finaux) se feront normalement à distance. Leur surveillance se fera à l’aide de la caméra et du micro de l’ordinateur et pourrait être enregistrée. Ceci est nécessaire pour se conformer aux exigences du Bureau canadien d’agrément des programmes de génie (BCAPG) afin d’assurer la validité des évaluations.
 
Le contexte actuel oblige bien sûr l’ÉTS à envisager la possibilité d’une deuxième vague de la pandémie de COVID-19, laquelle pourrait entraîner, après le début de la session d’automne 2020, un resserrement des directives et recommandations gouvernementales. Nous vous assurons que l’ÉTS se conformera aux règles en vigueur afin de préserver la santé publique et que, si requis, elle pourrait aller jusqu’à interdire l’accès physique au campus universitaire et ordonner la dispense en ligne de toutes les activités d’enseignement et d’évaluation pour la durée restante de la session d’automne 2020.

Des exigences additionnelles pourraient être spécifiées par l’ÉTS ou votre département, suivant les particularités propres à votre programme.

Si vous ne consentez pas aux modalités décrites précédemment, vous devez vous désinscrire de vos cours avant le 13 septembre et vous pourrez être remboursé.

Pour les nouveaux étudiants inscrits au programme de baccalauréat uniquement, vous devez vous désinscrire avant le 25 septembre et vous pourrez être remboursé.

En demeurant inscrit, vous acceptez les modalités particulières de la session d'automne 2020.




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’é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).




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

Les rencontres Zoom peuvent être enregistrées et fournies par l'enseignant en tout ou en partie, mais aucune autre forme d'enregistrement n'est permise.




Horaire
Groupe Jour Heure Activité
01 Jeudi 08:30 - 12:00 Activité de cours
Vendredi 13:30 - 15:30 Laboratoire
02 Jeudi 08:30 - 10:30 Laboratoire
Vendredi 13:30 - 17:00 Activité de cours



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Kevin Lachance-Coulombe Activité de cours cc-Kevin.Lachance-Coulombe@etsmtl.ca
01 Jordy Ajanohoun Laboratoire jordy.ajanohoun.1@ens.etsmtl.ca
02 Kevin Lachance-Coulombe Activité de cours cc-Kevin.Lachance-Coulombe@etsmtl.ca
02 Jordy Ajanohoun Laboratoire jordy.ajanohoun.1@ens.etsmtl.ca



Cours

Introduction au traitement parallèle, classification des architectures parallèles, modèles de programmation parallèle (3 heures[1])

Architecture matérielle des machines parallèles (3 heures)

Méthodes de conception des algorithmes parallèles (3 heures)

Aspect quantitatif dans la conception d’un algorithme parallèle (3 heures)

Programmation avec MPI (« Message Passing Interface ») (3 heures)

Programmation avec Posix-Thread (PThread) (3 heures)

Programmation avec OpenMP (3 heures)

Débogage et optimisation des algorithmes parallèles (3 heures)

Analyse de dépendance dans les algorithmes parallèles (3 heures)

Programmation sur GPGPU avec OpenCL/CUDA (12 heures)

 [1]     Ces heures sont des heures approximatives d’enseignement pour chaque sujet et incluent le temps alloué à l’examen intra-trimestriel. L'ordre des sujets pourrait être changé.




Laboratoires et travaux pratiques

Analyse et conception d'algorithmes parallèles (6 heures)

Programmation parallèle avec OpenMP (4 heures)

Programmation parallèle avec MPI (8 heures)

Programamtion parallèle avec OpenCL/CUDA (6 heures)

L’objectif principal des laboratoires est de familiariser l’étudiant avec les techniques du traitement parallèle et de ses avantages. Pour faire, les laboratoires commenceront par une proposition d’une solution séquentielle à un problème, puis la transformation de cette proposition en solution parallèle, et évaluer l’efficacité des deux approches. 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 le langage C/C++ dans un environnement UNIX/Windows.




Évaluation
Devoirs individuels (2) 10 %
Examen intra 30 %
Examen final 30 %
Laboratoires (4) 30 %

L'étudiant(e) doit avoir une moyenne d'au moins 50% dans les travaux individuels (examens intra, final, et devoirs) afin de réussir le cours. Cette condition est nécessaire, mais non suffisante.

Les deux (2) examens sont à toute documentation permise. Une calculatrice est permise.

Les quatre (4) laboratoires sont réalisés en équipes de deux (2) étudiant(e)s.




Dates des examens intra
Groupe(s) Date
1 22 octobre 2020
2 16 octobre 2020



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : http://etsmtl.ca/Etudiants-actuels/Baccalaureat/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.7 b / cycles supérieurs, article 6.5.4 b) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.

Dispositions additionnelles

Aucun retard ne sera accepté pour les devoirs puisque ceux-ci sont corrigés en classe à la séance de cours suivant la date de remise.

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 à un examen
Dans les cinq (5) jours ouvrables suivants, la tenue de son examen, l’étudiant devra justifier son absence d’un examen durant le trimestre auprès de la coordonnatrice – Affaires départementales qui en référera au directeur du département ou du SEG. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Dans tous les cas, l’étudiant doit effectuer sa demande en complétant le formulaire prévu à cet effet qui se trouve dans son portail Mon ÉTS/Formulaires. Toute absence non justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d’un parent immédiat, Activité compétitive d’un étudiant appartenant à un club scientifique ou un club sportif d’élite de l’ÉTS ou au programme « Alliance sport étude » ou autre) à un examen entraînera l’attribution de la note zéro (0).



Plagiat et fraude
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 étudiants doivent consulter le Règlement sur les infractions de nature académique (https://www.etsmtl.ca/docs/ETS/Gouvernance/Secretariat-general/Cadre-reglementaire/Documents/Infractions-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 les étudiants sont invités à consulter la page Citer, pas plagier ! (https://www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).



Documentation obligatoire

Aucune documentation obligatoire.




Ouvrages de références

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.




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. Il est de la responsabilité de l'étudiant de le consulter.

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

Exemples de problèmes sur github : https://github.com/stonkie/Log645 

Groupe de discussion sur slack : https://log645.slack.com/