Étude des performances de calcul et de communication

Transcription

Étude des performances de calcul et de communication
Étude des performances de calcul et
de communication du processeur
CELL
---------- Par Paul Roy ---------Le 25 mai 2010
Encadrant : Paul Amblard
Sommaire
0. Introduction
1. Multithreading
2. Le processeur CELL
3. Une expérience : le repas des philosophes
4. L'environnement de travail
5. Points délicats & Solutions apportées
6. Résultats
7. Analyse et conclusion
1/ Multithreading
1. Principe
- Parallélisation des tâches
2. Intérêt
- Gain en temps
3. Applications
- OS, calculs, ...
2/ Le processeur CELL
Processeur très différent des processeurs classiques
- moins de complexité, plus de puissance brute
Un cœur principal, huit cœurs esclaves
Des communications sophistiquées
Un processeur fait pour la parallélisation (mais problèmes
pour les compilateurs)
Applications diverses : PS3, multimédia, calculs
complexes, imagerie ...
2/ Le processeur CELL
3/ Une expérience :
Le repas des philosophes
Le problème :
3/ Une expérience :
Le repas des philosophes
Les conditions :
-
8 Philosophes, un philosophe par cœur
Programme dirigé par le PPE
Philosophes autonomes dans leur action
Philosophes dépendants de l'état des voisins
4/ L'environnement de travail
spu-gcc pour compiler
5/ Points Délicats & Solutions
Apportées
Points délicats :
- Partage des ressources et états des voisins
- Communication entre PPE et SPE
- Synchronisation des philosophes au lancement
5/ Points Délicats & Solutions
Apportées
Solutions :
Partage des ressources et états des voisins :
Utilisation d'une variable commune
Variable bloquée par un processeur puis libérée
Gestion depuis le PPE et le SPE
Communication entre PPE et SPE :
Contextes
Mailboxes
Variable commune
5/ Points Délicats & Solutions
Apportées
Solutions :
Synchronisation des processus au lancement :
Utilisation de la variable commune
Initialisation à 8, décrément quand un philosophe est lancé
Essais successifs de chaque philosophe lancé pour savoir si la
variable est à 0
Démarrage des processus
6/ Résultats
Principe :
Comparer une version non-optimisée (classique, avec
sémaphores, gérée par l'OS et donc uniquement sur le
PPE) et ma version optimisée CELL sur la même machine
8 Philosophes (un par cœur), un nombre variable de
repas
Communications bas niveau par DMA
Comparaison d'abord à vide puis avec une tâche
complexe
6/ Résultats
La tâche complexe utilisée :
Tri d'un tableau de taille 20 000
Tableau d'origine complexe (tab[i] = 199967*i % 199999)
Algorithme de tri par insertion
6/ Résultats
Comparaison « à vide »
6/ Résultats
Comparaison avec une tâche complexe
7/ Analyse et conclusion
- Permet d'augmenter l'efficacité du parallélisme dans le
cas de tâches complexes
- Peu d'intérêt pour des tâches simples
- Vitesse de calcul importante de nos jours
4 multiplications flottantes par cycle, soit à 4GHz un total de 16GFlops par
SPE
- Pourrait encore être amélioré : les SPE gèrent des mots
de 128 bits ...
7/ Analyse et conclusion
- Extension possible du problème des philosophes :
Merci.
Paul Roy.