Type | Nombre | Durée |
---|---|---|
Cours | 8 | 01:20 |
TD | 8 | 01:20 |
Type | Coefficient |
---|---|
Projet | 0.5 |
Examen Final | 0.5 |
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.
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.
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.
Compétence | Heures Cours | Heures Pratique | Niveau Entrée | Niveau Sortie |
---|---|---|---|---|
Tests d’intrusion | 0 | 5 | 1 | 2 |
Attaque de mot de passe |
Ref. | Verbe | Description | Niveau |
---|---|---|---|
C1_1 | choisir | architecture | 3 |
C1_4 | mettre en place | algorithmes | 3 |