Presentation is loading. Please wait.

Presentation is loading. Please wait.

Février 2014 GPU / Xeon Phi Calcul de fonction de corrélation à 2 points sur un grand nombre de galaxies Image : collaboration SDSS Problème : pour effectuer.

Similar presentations


Presentation on theme: "Février 2014 GPU / Xeon Phi Calcul de fonction de corrélation à 2 points sur un grand nombre de galaxies Image : collaboration SDSS Problème : pour effectuer."— Presentation transcript:

1 Février 2014 GPU / Xeon Phi Calcul de fonction de corrélation à 2 points sur un grand nombre de galaxies Image : collaboration SDSS Problème : pour effectuer cette mesure sur N galaxies, il faut exécuter N(N-1)/2 calculs  devient très vite prohibitif en terme de puissance CPU nécessaire Problème : pour effectuer cette mesure sur N galaxies, il faut exécuter N(N-1)/2 calculs  devient très vite prohibitif en terme de puissance CPU nécessaire Le calcul est simple à programmer et naturellement parallélisable  bon candidat pour se faire la main sur les GPU et autres accélérateurs graphiques (Xeon Phi par exemple) Sur 1 Milliard de galaxies !  ~0.5 10 18 calculs !!! Dominique Boutigny 1

2 Février 2014 GPU Accès aux machines ccgpu01 et ccgpu02 de la plateforme Dell : R720 - cartes Tesla M2090 – 5 GB de mémoire globale. Connexion Infiniband Catalogue de galaxies simulées pour le Blind Cosmology Challenge de la collaboration DES (Dark Energy Survey) (R. Weshler et al.)  204 fichiers contenant chacun ~7 millions de galaxies Algorithme simple : Calculer un angle (fonction trigo non triviale) pour chaque couple de galaxie sans faire de double comptage et sans calculer l'angle de la galaxie avec elle-même !  2 boucles imbriquées avec décalage des indices  Le résultat est une distribution (histogramme) de l'ensemble des valeurs calculées Relativement simple à porter sur GPU :  On copie les coordonnées (RA/DEC) des galaxies dans la mémoire globale du GPU (2x7 millions de valeurs)  La deuxième boucle est exécutée en parallèle sur le GPU (1024 threads en //), chaque thread exécutant un calcul (on associe un thread donné à une position dans le tableau contenant les coordonnées) Dominique Boutigny 2

3 Février 2014 GPU Afin d'optimiser le calcul, il faut impérativement éviter d'avoir à copier des données entre la mémoire du serveur et la mémoire du GPU  Il faut gérer l'histogramme au niveau du GPU Mais il y a un piège : L'idée de départ est de créer un tableau pour l'histogramme en mémoire globale mais les threads se "marchent sur les pieds" en écrivant dans la mémoire  perte de valeurs  Il faut créer un histogramme par thread et les recombiner à la fin. Sur 500 000 galaxies:  Sans GPU : 16h 46' 25''  GPU : 387 '' Gain : ×156 Sur 7.1 millions de galaxies:  GPU : ~20h  ~25 000 milliards d'appels à une fonction trigonométrique non triviale ! Dominique Boutigny 3

4 Février 2014 GPU Prochaines étapes sur la plateforme actuelle :  Gérer la lecture de plusieurs fichiers (204)  Utiliser les 2 GPU disponibles sur une machine  Utiliser 2 GPU sur 2 machines Avec un autre matériel:  Passer à N GPU  Écrire et tester le même algorithme sur des Xeon Phi Prochaines étapes sur la plateforme actuelle :  Gérer la lecture de plusieurs fichiers (204)  Utiliser les 2 GPU disponibles sur une machine  Utiliser 2 GPU sur 2 machines Avec un autre matériel:  Passer à N GPU  Écrire et tester le même algorithme sur des Xeon Phi Les GPU ne sont pas utilisables partout… loin de là ! Le calcul doit s'y prêter. Mais je suis convaincu qu'il y a des tas d'endroits dans le code LSST où c'est applicable : traitement d'images, simulation, … Les GPU ne sont pas utilisables partout… loin de là ! Le calcul doit s'y prêter. Mais je suis convaincu qu'il y a des tas d'endroits dans le code LSST où c'est applicable : traitement d'images, simulation, … Fait ! Et c'est très simple … Il suffit de lancer le "kernel" alternativement sur les 2 GPU. La synchronisation est gérée par le système. Résultat : 504 350 Galaxies  1 GPU : 404 s  2 GPU : 204 s Il n'y a donc quasiment pas d'overhead Résultat : 504 350 Galaxies  1 GPU : 404 s  2 GPU : 204 s Il n'y a donc quasiment pas d'overhead  Contribution de Fabio Hernandez pour mener à bien ce projet  Code dispo dans github  Utilisation de Trello comme outil de suivi / gestion de projet Dominique Boutigny 4

5 Février 2014 Outil de monitoring mis en place par Fabien Wernli Dominique Boutigny 5


Download ppt "Février 2014 GPU / Xeon Phi Calcul de fonction de corrélation à 2 points sur un grand nombre de galaxies Image : collaboration SDSS Problème : pour effectuer."

Similar presentations


Ads by Google