May 15, 2015
Innovation Recherche
Retour d'expérienceBig Compute & HPCsur Windows Azure
Antoine PoliakovConsultant HPC
ANEO
[email protected]://blog.aneo.eu
#mstechdays Innovation Recherche#3
• 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 ?– CPU : 100% natif– RAM: 99% natif– Réseau ???
HPC : un challenge pour le cloudIntroduction
#mstechdays Innovation Recherche#4
Etat de l’art du cloud pour le HPC
Expériences
TechnologieCloud HPC
Cas d’usagelogiciel HPC
Expérimenter le cloud HPC : 3 ingrédientsIntroduction
#mstechdays Innovation Recherche#5
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
Expérimenter le cloud HPC : notre démarcheIntroduction
#mstechdays Innovation Recherche#6
Un projet collaboratif : 3 acteurs complémentaires
Introduction
Equipes de recherche en HPC reconnues· Calcul distribué et big data· Apprentissage et systèmes
interactifs
Objectifs· La technologie est-elle
adaptée au calcul scientifique ?
· Spécificités du déploiement dans le cloud ?
· Performances
Windows Azure : fournisseur d’une solution cloud HPCAzure Big Compute
Objectifs· Avoir un retour
d’expérience technique avant la release
· Suivre de l’intérieur un portage cluster cloud
Cabinet de conseil en technologie et organisation Practice HPC : traitement rapide/massif d’information pour la finance et l’industrie
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
#mstechdays Innovation Recherche#7
Des équipes motivées et compétentes : merci !Introduction
Recherche· Cas d’usage : segmentation audio
distribuée· Analyse des expériences
Fournisseur· Fournisseur de la solution
technique· Mise à disposition d’importants
moyens de calculs
Conseil· Portage et déploiement de
l’application dans le cloud· Réalisation de benchmarks
Constantinos MakassikisConsultant HPC
Wilfried KirschenmannConsultant HPC
Antoine PoliakovConsultant HPC
Stéphane RossignolPr adjoint,Traitement signal
Stéphane VialleProfesseur, Informatique
Xavier PillonsPrincipal Program Manager,Windows Azure CAT
Kévin DehlingerStagiaire ingénieurCNAM
#mstechdays Innovation Recherche#8
1. Contexte technique
2. Retour d’expérience du portage
3. Optimisations
4. Résultats
Sommaire
Innovation Recherche#mstechdays #9
1. LE CONTEXTE TECHNIQUE
a. Azure Big Computeb. ParSon
#mstechdays Innovation Recherche#10
Azure Big Compute = Nouveaux nœuds Azure + HPC Pack
• 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
Nœuds A8 et A9
• 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
HPC Pack
Azure Big Compute
#mstechdays Innovation Recherche#11
HPC Pack : cluster privéAzure Big Compute
• Active Directory, Manager et nœuds dans l’infrastructure privée d’entreprise
• Cluster dimensionné par rapport à la charge maximale
• Administration : matérielle et logicielleAD
M
N N
N N
N N
N N
N N N N
#mstechdays Innovation Recherche#12
HPC Pack : dans le cloud Azure Big Compute
• Active Directory et manager dans le cloud
• Dimensionnement et facturation à la demande
• Administration logicielle uniquement
Azure Big Compute
AD
M
N N
N N
N N
N N
N N N NBureau / console
à distance
Nœuds PaaS
VM IaaS
#mstechdays Innovation Recherche#13
HPC Pack : déploiement hybrideAzure Big Compute
• Active Directory et manager dans le datacenter
• Nœuds répartis entre le datacenter et le cloud
• Dimensionnement local suivant la demande moyenneDimensionnement cloud dynamique : absorbe les pics
• Administration logicielle et matérielle
AD
M
N N
N N
N N
N N
N N N N
N N
N N
N N
N N
N N N N
VPN
#mstechdays Innovation Recherche#14
• 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 glissantes
ParSon : un logiciel scientifique de segmentation audio
ParSon
ParSon
Découpage et classification
Audio numérisée
voix
musique
#mstechdays Innovation Recherche#15
ParSon : une application parallèle OpenMP + MPIParSon
1. Upload fichiers d’entrée
OAR
2. Réserve N machines
4. MPI Exec
6. Rapatriement des sorties
NAS Machines réservées du cluster Cluster
Linux
3. Déploiement des entrées
5. ExécutionTâches inter-
communicantes
Données
Contrôle
#mstechdays Innovation Recherche#16
Les performances sont limitées par les entrées-sorties
ParSon
1 10 100 10008
80
800
8000
en réseau, à froiden local, à froid
Nombre de noeuds
Mei
lleur
tem
ps d
'éxé
cutio
n (s
)
IO bound
Innovation Recherche#mstechdays #17
2. PORTAGE VERS AZURE BIG COMPUTEa. 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 Innovation Recherche#18
• 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++
Standards respectés = portage Linux Windows facile
Portage
#mstechdays Innovation Recherche#19
ParSon dans le Cluster LinuxPortage
1. Upload fichiers d’entrée
OAR
2. Réserve N machines
4. MPI Exec
6. Rapatriement des sorties
NAS Machines réservées du cluster Cluster
Linux
3. Déploiement des entrées
5. Exécution
Données
Contrôle
#mstechdays Innovation Recherche#20
HPC pack SDK
ParSon dans le Cloud AzurePortage
1. Upload fichiers d’entrée
HPC Cluster Manager
2. Réserve N machines
4. MPI Exec
6. Rapatriement des sorties
Azure Storage Nœuds A9 provisionnés
PaaS Big Compute
3. Déploiement des entrées
AD Domain controle
r
IaaS PaaSDonnées
Contrôle
5. Exécution
#mstechdays Innovation Recherche#21
A chaque mise à jour logicielle : packaging + envoi dans Azure Storage1. Envoi vers le manager
– Soit via Azure StorageSet-AzureStorageBlobContent Get-AzureStorageBlobContenthpcpack 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 create3. Envoi sur storage Azure : hpcpack upload
A chaque provisionnement de nœuds : copie de travail locale4. Exécution sur les nœuds via clusrun depuis le manager5.hpcpack download6.powershell -command "Set-ExecutionPolicy RemoteSigned"
Invoke-Command -FilePath … -Credential …Start-Process powershell -Verb runAs -ArgumentList …
7. Installation : %deployedPath%\deployScript.ps1
Déploiement dans AzurePortage
#mstechdays Innovation Recherche#22
• 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
Ce premier déploiement présente des limitationsPortage
Innovation Recherche#mstechdays #23
3. OPTIMISATIONS
#mstechdays Innovation Recherche#24
• 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
Passage des compteurs en 64 bits dans le code C++
Méthodologie : suppression du goulet d’étranglement
Optimisations
#mstechdays Innovation Recherche#25
• RAMFS = système de fichiers dans un bloc mémoire RAM– Extrêmement rapide– Capacité limité et non persistant
• ImDisk– Léger : driver + service + ligne de commande– Open-source mais signé : fonctionne sous Win64
• Installation silencieuse scriptée – schématiquement :– 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
Accélération de l’accès local aux données via un RAMFS
Optimisations
#mstechdays Innovation Recherche#26
• 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 MPI1. 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
Accélération du transfert réseauOptimisations
Innovation Recherche#mstechdays #27
4. RÉSULTATS
#mstechdays Innovation Recherche#28
Le calcul passe bien à l’échelle, surtout pour les gros fichiers
Résultats
#mstechdays Innovation Recherche#29
Les entrées-sorties détériorent le passage à l’échelle
Résultats
+-
#mstechdays Innovation Recherche#30
Débit Storage régulier (220 Mo/s), latence parfois élevée
Broadcast constant @700 Mo/s
Résultats
Innovation Recherche#mstechdays #31
5. BILAN
#mstechdays Innovation Recherche#32
Notre retour d’expérience sur la technologie Big Compute
• Support des standards HPC : C++, OpenMP, MPI
– 10 jours de portage
• Des performances solides– Calcul : CPU, RAM– Réseau inter-nœuds
• Un support efficace– Communautaire, Microsoft
• Interface utilisateur claire et intuitive– 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 !
• Transfert de données– 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
• Administration des nœuds– Les transferts nœuds ↔ manager passent
obligatoirement par Azure storage : plus lourd qu’un NAS ou lecteur réseau
• Le temps de provisionnement (~7min) est à prendre en compte
#mstechdays Innovation Recherche#33
Azure Big Compute pour la recherche et l’entreprise
• Accès au calcul sans barrièreadministrative ou financière
• Mise à disposition des moyens de calculs en quelques minutes
– parfait pour l’extension de deadline d’une conférence
• Parfaitement adapté aux chercheurs en algorithmique parallèle
– Expériences paramétriques
• Un supercalculateur accessible à tous sans investissements
• 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
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
#mstechdays Innovation Recherche#34
Merci
?
Merci pour votre attention• Antoine Poliakov
• Stéphane [email protected]
• ANEOhttp://aneo.euhttp://blog.aneo.eu
• Retrouvez nous aux TechDays !Stand ANEO jeudi 11h30 - 13hAu cœur du SI > Infrastructure moderne avec Azure
Tous nos remerciements à Microsoft pour nous avoir prêté les machines !
Une question : n’hésitez pas !
© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Digital is business