É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.