FLASH INFORMATIQUE FI



Electra, cluster CPU-GPU puissant et pas trop complexe


L’EPFL vient de mettre à disposition de sa communauté des utilisateurs un nouveau serveur de calcul basé sur une architecture hybride CPU-GPU. Cette ressource est conçue comme une installation d’essai pour des développements nouveaux et le portage des algorithmes et codes existants, ainsi qu’à des fins de production.



EPFL has recently made available to its user community a new compute server based on a hybrid CPU-GPU architecture. This resource is designed as a test facility for new developments and the porting of existing algorithms and codes, as well as for production purposes.


Mark L. SAWLEY

Pascal JERMINI



Introduction

En général, le calcul scientifique s’effectue sur les processeurs de type CPU qui équipent la vaste majorité des ordinateurs. Certains calculs lourds font appel à la parallélisation, étape nécessaire pour l’utilisation performante des clusters des CPU, tels que Callisto et Blue Gene/P hébergés au DIT. Pendant ce temps, les tâches de manipulation des données graphiques et leur affichage sont pris en charge par un GPU installé dans toute station de travail moderne. La carte graphique - devenue un produit grand public avec une large diffusion grâce aux débouchés des jeux vidéo - a nettement augmenté en puissance de calcul, grâce à l’architecture hautement parallèle de son GPU. Récemment, il y a eu un intérêt croissant pour l’utilisation des GPU pour le calcul scientifique. Cet intérêt est basé non seulement sur le rapport performance/prix des GPU par rapport aux CPU traditionnels, mais aussi par leur rendu énergétique plus favorable. Afin de profiter de la puissance de calcul des GPU, des améliorations de leur fonctionnalité ont été récemment apportées en termes de programmabilité, support de données de type virgule flottante double précision, et langage de programmation.
Pour mesurer le succès de cette approche, nous pouvons noter qu’un superordinateur d’architecture hybride CPU-GPU est maintenant au premier rang de la liste TOP500. Plus intéressante encore pour les utilisateurs potentiels est la liste extensive des applications qui ont été déjà portées sur de tels systèmes. Des domaines spécifiques qui ont déjà profité de cette technologie incluent :

  • la dynamique moléculaire (NAMD, AMBER, LAMMPS),
  • la bio-informatique (GPU-BLAST),
  • le traitement des signaux (en utilisant MATLAB),
  • la dynamique des fluides (DUAL-SPHysics).

Configuration hardware

Depuis fin 2009, le DIT propose à ses utilisateurs des ressources de calcul dotées de technologies accélératrices basées sur des GPU, sous la forme d’un cluster expérimental. Ce dernier a été intégré au début 2011 dans un nouveau cluster de GPU, baptisé Electra (du nom d’une des grosses étoiles de la constellation du Taureau).
L’architecture d’Electra est hybride CPU-GPU. La partie CPU n’est pas tout à fait homogène, du fait d’achats effectués à un an d’écart. La première installation de noeuds CPU consistait en 16 noeuds embarquant chacun 2 processeurs à 4 coeurs (donc 8 coeurs par noeud) Intel Nehalem à 2.27 GHz et 48 GB de mémoire. La deuxième livraison comportait 8 noeuds supplémentaires, chacun ayant 12 coeurs (2 fois 6 coeurs) Intel Westmere à 2.67 GHz et 24 GB de mémoire. On voit donc qu’il y a une forte différence dans la quantité de mémoire à disposition entre les deux générations de machines. Tous les noeuds sont connectés à une baie d’extension NVIDIA Tesla S1070, offrant à chaque noeud deux cartes GPU avec chacune 4GB de mémoire embarquée.
L’architecture globale du système repose sur un réseau rapide de type InfiniBand DDR (avec une bande passante de 20 Gbps), utilisé pour les échanges de données entre les noeuds de calcul (grâce à la librairie Open MPI, par exemple). Un deuxième réseau Gigabit Ethernet est en outre disponible et est utilisé pour la connexion aux deux serveurs de fichiers.
Electra dispose d’un serveur de fichier NFS (6 TB d’espace disque) pour les répertoires personnels, ainsi que d’une baie de stockage Panasas PAS8 de 17 TB. Cette dernière est connectée avec un lien 10 Gigabit Ethernet au reste du réseau.

Programmation et environnement logiciel

Les GPU étant conçus spécifiquement pour le traitement graphique, ils sont très restrictifs en termes de modèles de programmation. Par leur nature, les GPU sont efficaces pour le traitement des problèmes par stream processing, lié aux concepts classiques de calcul vectoriel et de SIMD de la taxinomie de Flynn.
Il est donc essentiel que le problème à résoudre soit suffisamment parallélisable et que la programmation du GPU soit effectuée par une méthodologie adaptée. Actuellement, il existe plusieurs façons d’accéder à la puissance d’une carte graphique GPU :

  • la programmation de base, en utilisant l’environnement de programmation CUDA,
  • la programmation standard avec des extensions spécifiques pour GPU, par ex. PGI CUDA Fortran,
  • les packages spécialisés, par ex. MATLAB,
  • les logiciels open source et commerciaux déjà portés sur GPU.

Des techniques encore plus évoluées doivent être mises en oeuvre afin d’utiliser plusieurs cartes GPU du cluster pour effectuer en parallèle le même calcul. Ceci implique, en général, un modèle de programmation hybride (combinaison de méthodologies à l’intérieur et entre les GPU).
Étant donné la jeunesse du cluster Electra, l’offre actuelle en environnement logiciel n’est pas très étendue. Parmi l’offre de base on peut citer MATLAB avec la Parallel Computing Toolbox (qui permet l’utilisation des GPU), Open MPI (avec support pour les réseaux InfiniBand), ainsi que tous les outils de développement CUDA.
En fonction des demandes des utilisateurs, cette situation pourrait être améliorée. Il est également prévu de constituer un groupe d’intérêt sur le thème de la programmation GPU.

Ouverture du compte

Deux modes d’utilisation du cluster Electra sont disponibles :

  • Mode test : comptes limités à 3 mois (strictement), extensibles uniquement vers un compte de production, limite walltime par job de 24 heures, et des jobs d’un maximum de 8 noeuds.
  • Mode de production : comptes illimités en temps, limite walltime par job de 72 heures, mais sans limite en noeuds. Il est nécessaire, lors de l’inscription de fournir un bref justificatif (d’un paragraphe) de l’utilisation de la machine (domaine de calcul, méthodologie et pertinence de l’utilisation des GPU).

L’utilisation du cluster Electra est gratuite pour les membres de l’EPFL. Une demande d’ouverture de compte est effectuée par le site Web. Tout utilisateur intéressé par l’utilisation de cette ressource est vivement encouragé à contacter les auteurs.



Glossaire

CPU (Central Processing Unit) :
unité centrale de traitement ou processeur, c’est le composant de l’ordinateur qui exécute les programmes informatiques. W
GPU (Graphics Processing Unit) :
processeur graphique, c’est un microprocesseur présent sur les cartes graphiques au sein d’un ordinateur. W
SIMD (Single Instruction on Multiple Data) :
un des quatre modes de fonctionnement défini par la taxinomie de Flynn qui désigne un mode de fonctionnement des ordinateurs dotés de plusieurs unités de calcul fonctionnant en parallèle. W
walltime :
durée totale d’exécution d’une tâche, telle que chronométrée.
W = tiré de Wikipédia


Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.