Se connecter

Fiche Module

FISE

STI

Sécurité et Technologies Informatiques


Unité d'Enseignement :


Semestre : 9
Crédits ECTS : 8

Génie Logiciel


Elément Constitutif :


Coefficient : 1

Calcul Haute Performance


Option Architecture et Sécurité Logicielles




Volume horaire : 21:20

Type Nombre Durée
Cours 8 01:20
TD 8 01:20


Evaluations : 1

Type Coefficient
Projet 0.5
Examen Final 0.5


Enseignants : 2

Enseignant Type
Bobelin Laurent Responsable
Bobelin Laurent Intervenant



La plupart des machines à l’heure actuelle sont intrinsèquement parallèles, que ce soit un smartphone, un ordinateur personnel ou une GPU. Le parallélisme est à la base du calcul haute performance, qui permet de résoudre des problèmes mathématiques à grande échelle, de simuler des phénomènes physiques ou de prédire le temps qu’il fait.

Ce cours a pour objectif d’introduire le calcul haute performance (architectures, langages, paradigmes de programmation) et de vous faire acquérir les bases de la programmation parallèle et de l’évaluation de performance.

Pré-requis :

UE Semestre Module
Principes de la programmation 5 Programmation C
Principes de la programmation 5 Algorithmique et Complexité
Principes de la programmation 5 Logique


4 sessions cours suivi de TD, puis 8 sessions projets regroupées.

  • HPC 101 In this lecture we introduce the simplest notions of parallelism, HPC, and GPU. (101 means "first grade, first lecture" and is so a nickname to some kind of introduction lecture)
  • Parallel Applications: This lecture deals with how to exhibit parallelism in sequential code, the classic pattern to exhibit and handle parallelism (and how the parallel system deal with it). We also introduce some basic tools to model parallelism.
  • Parallel Architectures : Parallel architecture are complex, large scale systems that interconnects multiscale systems. Doing so is possible by using specific architecture, hardware, network topologies ... By the end of the lecture, you should be able to read and undestrand the basic overview of a large scale system. At the end of this lecture, we have check if you can do so by having a glance at two slideshows introducing two HPC architectures: (1) Summit the most powerful (as of january 2019) supercomputer in the world (2) Post-k, a japanese co-designed 32-bits GPU-based supercomputer with a really good power efficiency ratio
  • Parallel Programming Paradigms: This lecture series ends by introducing major programming paradigms and languages used in HPC. Next step ? Actual coding !

Project: The basic goals of the project is:

Brute force attack shadow given here with one processus. You may have heard about shadow files ; the idea here is to use some SHA encrypted entries from a dict. Then we compare SHA-encrypted passwords with SHA-encryted dict entries. If both match, then it means you discovered the password. There is a monoprocessor C code given here. Your work is to (1) add some parallelism to it using OpenMP. OpenMP uses pragma that are supported by most compilers nowadays as well as IDE, so you may manage to do it. Other parallel language use is possible (but tell me before picking one up why you did this choice). (2) See if you have some real improvement, i.e. you'll have to profile your code to see if there is an improvement. (3) If you have some CUDA-compatible GPU , implement this brute force attack on GPU and measure the performance improvement.

What I ask you is to give me back a little report stating 1) what method you choose to go parallel 2) how did you profile your code 3) what are the performances of your different prototype code. I ask you to deliver me back here on Celene your work before the end of February the 11th - we won't have any exam, nor practical session, so this may give you an opportunity to practice and an opportunity for me to evaluate. You'll find in this section the monoprocessor code to do it, as well as some code parts and a dictionary.




  • Projet en groupe (rapport sans soutenance) + examen


  • Lawrence Livermore computing center HPC tutorials https://hpc.llnl.gov/training/tutorials

Compétences SecNumEdu:

Compétence Heures Cours Heures Pratique Niveau Entrée Niveau Sortie
Tests d’intrusion 0 5 1 2
Attaque de mot de passe
Compétences :

Ref. Verbe Description Niveau
C1_1 choisir architecture 3
C1_4 mettre en place algorithmes 3