Retour d'expérience
Big Compute & HPC
sur Windows Azure
Antoine Poliakov
Consultant HPC
ANEO
apoliakov@aneo.fr
http://blog...
Introduction

HPC : un challenge pour le cloud
•

Cloud : accès via un réseau de télécommunications, à la demande et en li...
Introduction

Expérimenter le cloud HPC : 3 ingrédients

Technologie
Cloud HPC

Cas d’usage
logiciel HPC

Expériences

Eta...
Introduction

Expérimenter le cloud HPC : notre démarche
Identifier des partenaires et technologies
• Logiciel HPC
• Cloud...
Introduction

Un projet collaboratif : 3 acteurs complémentaires
Cabinet de conseil en technologie
et organisation
 Pract...
Introduction

Des équipes motivées et compétentes : merci !

Conseil
Portage et déploiement de
l’application dans le cloud...
Sommaire
1. Contexte technique
2. Retour d’expérience du portage
3. Optimisations
4. Résultats

#mstechdays

#8

Innovatio...
1. LE CONTEXTE TECHNIQUE
a. Azure Big Compute
b. ParSon

#mstechdays

#9

Innovation Recherche
Azure Big Compute = Nouveaux nœuds Azure + HPC
Pack

Azure Big Compute

Nœuds A8 et A9
•
•
•
•

2x8 snb E5-2670 @2.6Ghz, 1...
Azure Big Compute

HPC Pack : cluster privé

•

•

M

#mstechdays

N

N

N

N

AD

N

N

N

N

N

Cluster dimensionné par ...
Azure Big Compute

HPC Pack : dans le cloud Azure Big Compute
•

Active Directory et manager dans le cloud

•

Dimensionne...
Azure Big Compute

HPC Pack : déploiement hybride
•

Active Directory et manager dans le datacenter

•

Nœuds répartis ent...
ParSon

ParSon : un logiciel scientifique de segmentation audio
• ParSon = algorithme de segmentation audio voix /
musique...
ParSon

ParSon : une application parallèle OpenMP + MPI
6. Rapatriement
des sorties

Données
Contrôle

4. MPI Exec
2. Rése...
ParSon

Meilleur temps d'éxécution (s)

Les performances sont limitées par les entrées-sorties
2048
512
128
IO bound

32

...
2. PORTAGE VERS AZURE BIG
COMPUTE
a. Portage du code C++ : Linux  Windows
b. Portage de la distribution : Cluster  HPC C...
Portage

Standards respectés = portage Linux  Windows facile
• Grâce au respect du standard C++ par le code ParSon et Vis...
Portage

ParSon dans le Cluster Linux
6. Rapatriement
des sorties

Données
Contrôle

4. MPI Exec
2. Réserve
N machines

OA...
Portage

ParSon dans le Cloud Azure
6. Rapatriement
des sorties

IaaS

PaaS

4. MPI Exec
2. Réserve
N machines
HPC Cluster...
Portage

Déploiement dans Azure
A chaque mise à jour logicielle : packaging + envoi dans Azure Storage
1. Envoi vers le ma...
Portage

Ce premier déploiement présente des limitations
•

Le temps de transfert du fichier son est supérieur au temps de...
3. OPTIMISATIONS

#mstechdays

#23

Innovation Recherche
Optimisations

Méthodologie : suppression du goulet d’étranglement
•

La maillon faible du déploiement précédent est le tr...
Accélération de l’accès local aux données via un
RAMFS
•

RAMFS = système de fichiers dans un bloc mémoire RAM
–
–

•

ImD...
Optimisations

Accélération du transfert réseau
•

Tous les systèmes de transferts “classiques” utilisent l’interface Ethe...
4. RÉSULTATS

#mstechdays

#27

Innovation Recherche
Le calcul passe bien à l’échelle, surtout pour les gros
fichiers

#mstechdays

#28

Innovation Recherche

Résultats
Résultats

Les entrées-sorties détériorent le passage à l’échelle

+

-

#mstechdays

#29

Innovation Recherche
Débit Storage régulier (220 Mo/s), latence parfois élevée
Résultats
Broadcast constant @700
Mo/s

#mstechdays

#30

Innova...
5. BILAN

#mstechdays

#31

Innovation Recherche
Notre retour d’expérience sur la technologie Big
Compute
•

Support des standards HPC : C++, OpenMP, MPI
–

•

Transfert d...
Azure Big Compute pour la recherche et l’entreprise
Modèle de coût prévisible et adapté à l’utilisation
Conception moderne...
Merci pour votre attention
•

Antoine Poliakov
apoliakov@aneo.fr

Merci

Tous nos remerciements à
Microsoft pour nous avoi...
Digital is
business
Retour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]
Prochain SlideShare
Chargement dans…5
×

Retour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]

547 vues

Publié le

Le cloud est-il adapté aux besoins du calcul hautes performances ? La réponse par l’expérience : les consultants HPC d'ANEO ont porté et optimisé une application scientifique distribuée développée par Supélec depuis leur cluster Linux vers la nouvelle offre de cloud Microsoft, Big Compute (nœuds reliés en InfiniBand).

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
547
Sur SlideShare
0
Issues des intégrations
0
Intégrations
14
Actions
Partages
0
Téléchargements
11
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Inverserl’ordre
  • Retour d’expérience Big Compute & HPC sur Windows Azure [TechDays 2014]

    1. 1. Retour d'expérience Big Compute & HPC sur Windows Azure Antoine Poliakov Consultant HPC ANEO apoliakov@aneo.fr http://blog.aneo.eu Innovation Recherche
    2. 2. Introduction HPC : un challenge pour le cloud • Cloud : accès via un réseau de télécommunications, à la demande et en libre-service, à des ressources informatiques partagées configurables • HPC (High Performance Computing) : branche de l’informatique visant à atteindre les plus hautes performances logicielles possibles en particulier en termes de vitesse de calcul – – – La puissance de calcul double tous les 1,5 - 2 ans La vitesse des réseaux double tous les 2 - 3 ans L’écart calcul/réseaux double tous les 5 ans • Intérêt du HPC dans le cloud : accessibilité (PME, recherche, etc.)  moteur d’innovation énorme • Le cloud peut-il garantir des performance suffisantes pour le HPC ? – – – #mstechdays CPU : 100% natif RAM: 99% natif Réseau ??? #3 Innovation Recherche
    3. 3. Introduction Expérimenter le cloud HPC : 3 ingrédients Technologie Cloud HPC Cas d’usage logiciel HPC Expériences Etat de l’art du cloud pour le HPC #mstechdays #4 Innovation Recherche
    4. 4. Introduction Expérimenter le cloud HPC : notre démarche Identifier des partenaires et technologies • Logiciel HPC • Cloud performant Porter l’application HPC : cluster  cloud • Montée en compétences • Retour d’expérience Expérimenter et mesurer les performances • Passage à l’échelle • Transferts de données #mstechdays #5 Innovation Recherche
    5. 5. Introduction Un projet collaboratif : 3 acteurs complémentaires Cabinet de conseil en technologie et organisation  Practice HPC : traitement rapide/massif d’information pour la finance et l’industrie Equipes de recherche en HPC reconnues Calcul distribué et big data Apprentissage et systèmes interactifs Windows Azure : fournisseur d’une solution cloud HPC Azure Big Compute Objectifs Identifier les cas d’usage les plus pertinents Mesurer la complexité du portage et du déploiement Evaluer la maturité de la solution dans un contexte de production Objectifs La technologie est-elle adaptée au calcul scientifique ? Spécificités du déploiement dans le cloud ? Performances Objectifs Avoir un retour d’expérience technique avant la release Suivre de l’intérieur un portage cluster  cloud #mstechdays #6 Innovation Recherche
    6. 6. Introduction Des équipes motivées et compétentes : merci ! Conseil Portage et déploiement de l’application dans le cloud Réalisation de benchmarks Constantinos Makassikis Consultant HPC Recherche Cas d’usage : segmentation audio distribuée Analyse des expériences Stéphane Vialle Professeur, Informatique Antoine Poliakov Consultant HPC Stéphane Rossignol Pr adjoint, Traitement signal Wilfried Kirschenmann Consultant HPC Kévin Dehlinger Stagiaire ingénieur CNAM #mstechdays #7 Innovation Recherche Fournisseur Fournisseur de la solution technique Mise à disposition d’importants moyens de calculs Xavier Pillons Principal Program Manager, Windows Azure CAT
    7. 7. Sommaire 1. Contexte technique 2. Retour d’expérience du portage 3. Optimisations 4. Résultats #mstechdays #8 Innovation Recherche
    8. 8. 1. LE CONTEXTE TECHNIQUE a. Azure Big Compute b. ParSon #mstechdays #9 Innovation Recherche
    9. 9. Azure Big Compute = Nouveaux nœuds Azure + HPC Pack Azure Big Compute Nœuds A8 et A9 • • • • 2x8 snb E5-2670 @2.6Ghz, 112Gb DDR3 @1.6Ghz InfiniBand (network direct @40Gb/s) : RDMA via MS-MPI @3.5Go/s, 3µs IP Ethernet @10Gb/s ; HDD 2To @250Mo/s Hyperviseur Azure HPC Pack • Middleware de gestion des tâches : Cluster Manager + SDK • Testé à 50k cœurs dans Azure • Extension Pack gratuit : Tout Windows Server peut servir de nœud #mstechdays #10 Innovation Recherche
    10. 10. Azure Big Compute HPC Pack : cluster privé • • M #mstechdays N N N N AD N N N N N Cluster dimensionné par rapport à la charge maximale • Administration : matérielle et logicielle N N Active Directory, Manager et nœuds dans l’infrastructure privée d’entreprise N #11 Innovation Recherche
    11. 11. Azure Big Compute HPC Pack : dans le cloud Azure Big Compute • Active Directory et manager dans le cloud • Dimensionnement et facturation à la demande • Administration logicielle uniquement Nœuds PaaS VM IaaS Bureau / console à distance #mstechdays #12 M Innovation Recherche N N N N N AD N N N N N N N
    12. 12. Azure Big Compute HPC Pack : déploiement hybride • Active Directory et manager dans le datacenter • Nœuds répartis entre le datacenter et le cloud • Dimensionnement local suivant la demande moyenne Dimensionnement cloud dynamique : absorbe les pics • Administration logicielle et matérielle N N N N N N N N N N #13 VPN M Innovation Recherche N N N N N AD N N N N #mstechdays N N N N N
    13. 13. ParSon ParSon : un logiciel scientifique de segmentation audio • ParSon = algorithme de segmentation audio voix / musique 1. Apprentissage sur échantillons connus pour calibrer la classification 2. Classification à base d’analyse spectrale (FFT) sur fenêtre Audio numérisée glissantes ParSon Découpage et classification #mstechdays #14 Innovation Recherche voix musique
    14. 14. ParSon ParSon : une application parallèle OpenMP + MPI 6. Rapatriement des sorties Données Contrôle 4. MPI Exec 2. Réserve N machines OAR 5. Exécution Tâches intercommunicantes 1. Upload fichiers d’entrée NAS #mstechdays #15 3. Déploiement des entrées Machines réservées du cluster Innovation Recherche Cluster Linux
    15. 15. ParSon Meilleur temps d'éxécution (s) Les performances sont limitées par les entrées-sorties 2048 512 128 IO bound 32 en réseau, à froid en local, à froid 8 1 4 16 Nombre de noeuds #mstechdays #16 Innovation Recherche 64 256
    16. 16. 2. PORTAGE VERS AZURE BIG COMPUTE a. Portage du code C++ : Linux  Windows b. Portage de la distribution : Cluster  HPC Cluster Manager c. Portage et adaptation des scripts de déploiement #mstechdays #17 Innovation Recherche
    17. 17. Portage Standards respectés = portage Linux  Windows facile • Grâce au respect du standard C++ par le code ParSon et Visual, il y a très peu de modifications à faire dans le code applicatif • L’application s’appuie sur la bibliothèque standard et des bibliothèques scientifiques multiplateformes : libsnd, fftw... • Grâce à MS-MPI, le code de communication MPI reste inchangé • Visual Studio supporte OpenMP de manière native • Le seul travail a consisté à traduire les fichiers de build : Makefile  Projet Visual C++ #mstechdays #18 Innovation Recherche
    18. 18. Portage ParSon dans le Cluster Linux 6. Rapatriement des sorties Données Contrôle 4. MPI Exec 2. Réserve N machines OAR 5. Exécution 1. Upload fichiers d’entrée NAS #mstechdays #19 3. Déploiement des entrées Machines réservées du cluster Innovation Recherche Cluster Linux
    19. 19. Portage ParSon dans le Cloud Azure 6. Rapatriement des sorties IaaS PaaS 4. MPI Exec 2. Réserve N machines HPC Cluster Manager AD Domain controler 5. Exécution 1. Upload fichiers d’entrée HPC pack SDK Azure Storage #mstechdays #20 3. Déploiement des entrées Nœuds A9 provisionnés Innovation Recherche PaaS Big Compute Données Contrôle
    20. 20. Portage Déploiement dans Azure A chaque mise à jour logicielle : packaging + envoi dans Azure Storage 1. Envoi vers le manager – – Soit via Azure Storage Set-AzureStorageBlobContent  Get-AzureStorageBlobContent hpcpack create ; hpcpack upload  hpcpack download Soit via transfert classique : serveur de fichiers accessible d’internet – FileZilla ou autre 2. Script de packaging : mkdir, copy, etc. ; hpcpack create 3. Envoi sur storage Azure : hpcpack upload A chaque provisionnement de nœuds : copie de travail locale 1. Exécution sur les nœuds via clusrun depuis le manager 2. hpcpack download 3. powershell -command "Set-ExecutionPolicy RemoteSigned" Invoke-Command -FilePath … -Credential … Start-Process powershell -Verb runAs -ArgumentList … 4. Installation : %deployedPath%deployScript.ps1 #mstechdays #21 Innovation Recherche
    21. 21. Portage Ce premier déploiement présente des limitations • Le temps de transfert du fichier son est supérieur au temps de calcul séquentiel • Sur plusieurs nœuds, le temps de calcul est négligeable face aux transferts • Limite de taille d’entrée : format WAV 2-4Go ; code C++ 4Mds échantillons #mstechdays #22 Innovation Recherche
    22. 22. 3. OPTIMISATIONS #mstechdays #23 Innovation Recherche
    23. 23. Optimisations Méthodologie : suppression du goulet d’étranglement • La maillon faible du déploiement précédent est le transfert du fichier d’entrée 1. Ecriture disque : 300 Mo/s  Utilisation d’un RAMFS 2. Accès Azure Storage : QoS 1.6 Go/s  Téléchargement unique depuis le stockage, puis distribution en InfiniBand 3. Données volumineuses : 60 Go  FLAC c8 : divise la taille par 2, lève la limitation de taille du format WAV  des #mstechdays Passage#24 compteurs en 64 bits dans le code C++ Innovation Recherche
    24. 24. Accélération de l’accès local aux données via un RAMFS • RAMFS = système de fichiers dans un bloc mémoire RAM – – • ImDisk – – • Léger : driver + service + ligne de commande Open-source mais signé : fonctionne sous Win64 Installation silencieuse scriptée – schématiquement : – – – – • Extrêmement rapide Capacité limité et non persistant hpcpack create … rundll32 setupapi.dll,InstallHinfSection DefaultInstall 128 disk.inf Start-Service -inputobject $(get-service -Name imdisk) imdisk.exe -a -t vm -s 30G -m F: -o rw format F: /fs:ntfs /x /q /Y $acl = Get-Acl F: $acl.AddAccessRule(…FileSystemAccessRule("Everyone","Write", …)) Set-Acl F: $acl A exécuter à chaque provisionnement des nœuds #mstechdays #25 Innovation Recherche Optimisations
    25. 25. Optimisations Accélération du transfert réseau • Tous les systèmes de transferts “classiques” utilisent l’interface Ethernet – Accès Azure Storage via les SDK Azure et HPC Pack – Partage Windows ou lecteur réseau CIFS – Autres protocoles de transfert réseau : FTP, NFS, etc. • Le moyen le plus simple d’utiliser InfiniBand est via MPI 1. Sur une machine : télécharge le fichier d’entrée : Azure  RAMFS 2. mpiexec broadcast.exe : 1 process par machine • Nous avons codé un programme C++ MPI • Si id = 0, lit le RAMFS par blocs de 4Mb et envoi aux autres par InfiniBand : MPI_Bcast • Si id ≠ 0, reçoit les blocs de données et les enregistre dans le fichier sur RAMFS • Utilisation des API Win32 plus rapides que les abstractions standard C ou C++ 3. Le fichier est dans la RAM de tous les nœuds, accessible en tant que fichier par l’application #mstechdays #26 Innovation Recherche
    26. 26. 4. RÉSULTATS #mstechdays #27 Innovation Recherche
    27. 27. Le calcul passe bien à l’échelle, surtout pour les gros fichiers #mstechdays #28 Innovation Recherche Résultats
    28. 28. Résultats Les entrées-sorties détériorent le passage à l’échelle + - #mstechdays #29 Innovation Recherche
    29. 29. Débit Storage régulier (220 Mo/s), latence parfois élevée Résultats Broadcast constant @700 Mo/s #mstechdays #30 Innovation Recherche
    30. 30. 5. BILAN #mstechdays #31 Innovation Recherche
    31. 31. Notre retour d’expérience sur la technologie Big Compute • Support des standards HPC : C++, OpenMP, MPI – • Transfert de données – – Calcul : CPU, RAM Réseau inter-nœuds – Latence parfois élevée du stockage Azure Débit limité sur Azure storage  répartition sur plusieurs comptes Disques durs lents (pour HPC), même sur A9 Un support efficace – • • Des performances solides – – • 10 jours de portage Communautaire, Microsoft Interface utilisateur claire et intuitive – – • Administration des nœuds – manage.windowsazure.com HPC Cluster Manager • Tout est scriptable et programmable • Cloud plus flexible que cluster figé • Une gestion unifiée des moyens de calcul de l’entreprise et du cloud ! Les transferts nœuds ↔ manager passent obligatoirement par Azure storage : plus lourd qu’un NAS ou lecteur réseau #mstechdays #32 • Le temps de provisionnement (~7min) est à prendre en compte Innovation Recherche
    32. 32. Azure Big Compute pour la recherche et l’entreprise Modèle de coût prévisible et adapté à l’utilisation Conception moderne, documentation complète, support efficace Le besoin d’administration est réduit par rapport à une infra privée mais reste présent Pour la recherche Pour l’entreprise • Accès au calcul sans barrière administrative ou financière • Un supercalculateur accessible à tous sans investissements • Mise à disposition des moyens de calculs en quelques minutes • Facilité d’utilisation élastique : dimensionnement à la demande • Interopérabilité native avec un cluster Windows privé – Le cloud absorbe les pics – Meilleur des deux mondes • Datacenters en UE : Irlande + Pays-Bas – • parfait pour l’extension de deadline d’une conférence  Parfaitement adapté aux chercheurs en algorithmique parallèle – Expériences paramétriques #mstechdays #33 Innovation Recherche
    33. 33. Merci pour votre attention • Antoine Poliakov apoliakov@aneo.fr Merci Tous nos remerciements à Microsoft pour nous avoir prêté les machines ! • Stéphane Vialle stephane.vialle@supelec.fr • ANEO http://aneo.eu http://blog.aneo.eu • Retrouvez nous aux TechDays ! Stand ANEO jeudi 11h30 - 13h Au cœur du SI > Infrastructure moderne avec Azure #mstechdays #34 ? Une question : n’hésitez pas ! Innovation Recherche
    34. 34. Digital is business

    ×