FLASH INFORMATIQUE FI



HPC dans le Cloud


Même si le cloud computing n’est pas une révolution, les services proposés par les différents acteurs du marché doivent être étudiés avec soin. Dans cet article nous allons voir si, aujourd’hui, il est possible d’utiliser un Cloud public pour les applications HPC.



Even if Cloud Computing is not a revolution, all services offered by various market players must be studied carefully. In this article we will see if today it is possible to use a Public Cloud for HPC applications.


Fabien FIGUERAS



Après avoir rappelé comment les clustersHPC sont architecturés et le modèle de programmation dominant dans les applications HPC, nous comparerons les performances des applications dans un Cloud public et dans un cluster privé. Puis nous calculerons le prix d’un cluster dans un Cloud public. Enfin nous terminerons en étudiant les opportunités d’utiliser un Cloud public pour les applications de la grille de PC.

HPC : architecture et modèle de programmation

Pour les lecteurs qui ne sont pas familiers du HPC (High Performance Computing), je vais rappeler les architectures utilisées à l’EPFL et le modèle de programmation dominant. Pour les initiés vous pouvez sauter directement à la partie suivante.
Les machines HPC souvent appelées cluster ont l’architecture logique commune :

  • une machine sur laquelle les utilisateurs se connectent appelée frontale ;
  • des machines effectuant les calculs, interconnectées entre elles et avec la frontale et ayant accès à un stockage partagé. Ces machines sont souvent appelées noeuds ;
  • un système de stockage partagé entre les noeuds et la frontale avec un système de fichier parallèle ou non. Les machines mises à disposition de l’enseignement et de la recherche à l’EPFL peuvent être regroupées en trois catégories (pour plus de détail) :
  • le super calculateur Blue Gene pour les calculs massivement parallèles ;
  • des clusters généralistes avec différents niveaux de performance d’interconnexion, de systèmes de fichier parallèle (GPFS) ou non ( NFS), et plus ou moins hétérogènes ( avec ou sans GPU) ;
  • une grille de PC et de VM nommé Greedy. Le modèle de programmation dominant pour les deux premières catégories est MPI (Message Passing Interface), qui fait un grand usage de l’interconnexion entre noeuds. Pour obtenir les meilleures performances, la latence doit être la plus faible possible et la bande passante maximale. Actuellement c’est Infiniband qui domine les technologies d’interconnexion.
    Pour la grille, on trouve des programmes qui utilisent un seul processeur et qui ne communiquent pas avec l’extérieur.

Des applications HPC dans un Cloud public  ?

Actuellement les utilisateurs de Blue Gene et des clusters généralistes soumettent leurs travaux dans l’infrastructure privée de l’EPFL. Je n’utilise pas le nom de Cloud privé, car cela serait un abus de langage, en effet le Cloud se réfère généralement à une infrastructure de machines virtuelles (voir FI6/11 Cloud : évolution ou révolution) !
La question est bien sûr de savoir si ces utilisateurs pourraient utiliser un Cloud public au lieu de l’infrastructure locale.
Pour qu’un utilisateur veuille soumettre ces travaux dans un Cloud public il faut au moins que les performances et les prix soient du même ordre de grandeur.

Cloud public HPC et une infrastructure locale, qui est le plus rapide ?

Avant de présenter les résultats, j’invite le lecteur à se poser la question suivante :
Si mon application utilise intensivement le réseau d’interconnexion, sera-t-elle plus performante avec un réseau d’interconnexion à faible latence et grande bande passante ou avec un réseau à forte latence et bande passante moyenne  ?
La réponse vous semble évidente  ? Comme moi vous vous dites :
mais pourquoi perdre son temps à faire des tests  ?.
Je n’ai pas de certitudes, mais il semblerait que les gestionnaires et autres comptables, responsables de nos budgets, aient plus suivi les enseignements de Saint Thomas que de Descartes et qu’ils aient besoin de toucher un bon rapport de tests qui montre ce qui semblait déjà si évident.
Le Cloud public le plus connu et qui offre des services HPC est Amazon EC2. De nombreux tests réalisés seulement aux États-Unis (vous verrez plus loin pourquoi) ont montré que pour du HPC en général une infrastructure dédiée de machines physiques est plus performante qu’une infrastructure de machines virtuelles (VM) dans un Cloud Public. Le principe de base d’un Cloud Public est de mutualiser au maximum les ressources. Donc à un même instant plusieurs VM se partagent le processeur, ce qui explique simplement qu’une VM ne dispose que d’une fraction de la puissance et donc ne puisse pas être aussi performante qu’une machine disposant du processeur pour elle seule. Le même raisonnement s’applique pour les autres ressources (mémoire, disque, réseau).
Parmi tous les comparatifs, je vous propose de reprendre les conclusions de l’étude Performance analysis of high performance computing applications on the amazon web services cloud réalisée par huit membres du Lawrence Berkeley National Lab [7]. L’intérêt principal est d’avoir comparé les performances de six applications et d’une batterie de tests HPC sur trois clusters locaux de puissance et d’âge différents et sur un cluster HPC-EC2. L’analyse des résultats a montré que toutes les applications qui faisaient un usage intensif de MPI avaient des performances de six à vingt fois moins bonnes sur le cluster dans le Cloud public que sur les clusters locaux. L’interconnexion du cluster du Cloud est de l’Ethernet à 10Gbps partagé par toutes les machines physiques alors que les clusters locaux utilisaient de l’Infiniband à 20 ou 40 Gbps.
Saint Thomas est-il satisfait  ? Il pourrait demander de comparer les performances des accès disques entre des machines locales et le Cloud public. Le résultat sera du même ordre de grandeur. En effet les accès aux disques dans le Cloud public se font à travers NFS et sur un réseau LAN partagé, ou pire à travers du WAN ! Il faudra donc comparer ce réseau à faible débit et mutualisé à un réseau local dédié à large bande passante où les données seront servies par des fermes de serveurs de fichiers offrant accès à des systèmes de fichiers parallèles soutenant jusqu’à 100Gbps  !

Comparaison des coûts entre un Cloud HPC et une infrastructure locale

Maintenant vous n’avez plus de doute que le Cloud Public est beaucoup moins performant que des infrastructures locales.
Vous pouvez me dire que si une application met 30% de temps en plus pour s’exécuter dans le Cloud public que sur mon cluster local, mais que cela me coûte 50% de moins, je suis encore gagnant  !
Malheureusement ce n’est pas le cas, je ne peux pas donner les chiffres exacts ici pour cause de confidentialité avec nos fournisseurs, mais je vous vais vous donner un ordre de grandeur du tarif Amazon pour une configuration d’un cluster de taille raisonnable.
Si on prend une base de 125 noeuds (Amazon n’en donne pas plus de 128 par cluster) à 2 CPU et 4 coeurs, on obtient un total de 1000 coeurs. En considérant un OS Linux gratuit (pas comme SUSE ou Red Hat), un taux de change de 0.842 CHF pour un dollar (taux de fin mai 2011) et une TVA de 8%, le coût sur 3 ans avec réservation de la machine est de 2’421’944 CHF.
Un beau budget n’est-ce pas ! Mais attention ce n’est pas fini, au prix des noeuds vous devez encore rajouter :

  • les données qui entrent et sortent du Cloud ;
  • l’espace disque pour les données de calcul ;
  • les lectures et écritures effectuées sur ce stockage.

Pour vous donner une idée du montant à rajouter, prenons un exemple réaliste :

  • les volumes de données sortis de Callisto entre le 23 mai et le 21 juin 2011 : 1’974 GB ;
  • un stockage de 50 TB ;
  • pour calculer le nombre d’I/O prenons une taille de buffer de 1024 octets.

Ce qui coûte le plus cher ici c’est le stockage ; finalement sur trois ans à ce rythme, il faudra rajouter 183’554 CHF. On arrive donc à un total sur 3 ans (en arrondissant) de 2,6 millions de Francs.
Sur la durée de vie de la machine, le Cloud public HPC est plus cher qu’un cluster local  ! Bien sur vous n’êtes pas obligé de me croire et vous pouvez essayer vous même de faire le calcul, cependant faites bien attention à ne rien oublier dans toutes les options proposées par Amazon pour comparer des choses comparables.

Opportunités pour le Cloud HPC  ?

Moins performant et plus cher  ! Enterrons joyeusement le Cloud public et passons à autre chose ? Pas si vite, il y a quand même un intérêt technique pour le Cloud public HPC.
On a vu que s’il n’y avait pas de communication entre les noeuds et pas trop d’accès disques, les performances étaient relativement proches entre un Cloud public et un cluster local.
Les utilisateurs de Blue Gene et des clusters généralistes n’ont donc pas, pour l’instant, d’intérêt à utiliser un Cloud public. Cependant les utilisateurs de la grille semblent de bons candidats, en effet les programmes sont mono CPU, ne communiquent pas entre eux et ne font pas non plus beaucoup d’accès disques.
Depuis quelques mois le DIT expérimente un Cloud privé de 80 VM mono CPU, les applications qui utilisent cette infrastructure expérimentale ont un profil caractéristique. En effet toutes les VM qui supportent ces applications ont le même type d’utilisation des ressources. Elles utilisent entièrement le CPU à disposition (fig. 1), intensément la mémoire (fig. 2) et très peu le disque (fig. 3) et le réseau (fig. 4).


fig.1 - VM sur un serveur, toutes utilisent le CPU à 100%



fig. 2 - utilisation mémoire d’une VM (42% de la mémoire est active en moyenne)



fig. 3 - utilisation disque d’une VM (débit moyen 23 Kbps)



fig. 4 - utilisation réseau d’une VM (débit moyen 1 KBps)

Malheureusement, pour que ces applications utilisent un Cloud public, il reste quand même deux problèmes de taille. L’accès à la grille est actuellement gratuit à l’EPFL alors qu’il est payant dans un Cloud public. Mais surtout le service HPC d’Amazon n’est à ce jour disponible qu’aux États-Unis.

Conclusion

Nous avons vu que les applications HPC utilisant le modèle de programmation MPI ne sont pas de bonnes candidates pour les Cloud public.
En effet l’écart de performance est trop grand et aucun gain financier n’est à attendre.
Le Cloud public pourrait éventuellement servir pour des applications mono CPU mais les utilisateurs de l’EPFL qui aujourd’hui accèdent gratuitement à ces ressources devraient mettre la main à la poche.
Nous n’avons pas abordé ici les problèmes de confidentialité et de sécurité liés à l’utilisation d’un Cloud public, mais ils devront être pris en compte avant de se décider à utiliser une infrastructure publique.



Glossaire

GPFS (General Parallel File System) :
système de fichiers conçu pour adresser de façon unique des volumes de données dépassant le pétaoctet et répartis sur un nombre de supports physiques pouvant dépasser le millier et W
latence :
temps d’établissement de la communication.
NFS (Network File System) :
protocole développé par Sun Microsystems qui permet à un ordinateur d’accéder à des fichiers via un réseau. W
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.