Session de retour d'experience sur Windows Azure Big Compute à Supelec Metz: Portage de Linux à Windows et benchmark sur 512 coeurs d'un logiciel de traitement du signal de Supelec Metz. Session présentée par Antoine Poliakov d'ANEO et le prof. Stéphane Vialle de Supelec Metz. www.aneo.eu/ www.metz.supelec.fr/~vialle La plateforme Windows Azure Big Compute a été créée pour répondre aux besoins d'applications parallelisées impliquant des communications entre nœuds de calculs. Big Compute repose sur un cluster bâti autour de la solution HPCPack et interconnecté en infiniband. Dans le but d'explorer cette offre et la valeur ajoutée de cette infrastructure, ANEO a analysé les performances d’une application qui a été portée par ses soins à partir de Linux. Cette application de traitement du signal, développée et optimisée par Supélec, fait de la segmentation audio et présente deux niveaux de parallélisme. Le premier niveaux de parallélisme met en œuvre des threads à l’aide d’OpenMP tandis que le second met en œuvre des process (éventuellement distribués) et s’appuie sur MSMPI. Dans cette présentation, nous exposerons comment effectuer le portage d’une application HPC depuis Linux vers Windows Azure. Nous analyserons et discuterons ensuite les performances obtenues.
Speakers : Antoine Poliakov (ANEO), Pierre-Louis Xech (Microsoft France)
Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC
1.
2. Retour d'expérience
Big Compute & HPC
sur Windows Azure
Antoine Poliakov
Consultant HPC
ANEO
apoliakov@aneo.fr
http://blog.aneo.eu
Innovation Recherche
3. HPC : un challenge pour le cloud
Introduction
•
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
4. 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
Introduction
5. 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
Introduction
6. Un projet collaboratif : 3 acteurs complémentaires
Introduction
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
7. 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
Introduction
Fournisseur
Fournisseur de la solution
technique
Mise à disposition d’importants
moyens de calculs
Xavier Pillons
Principal Program Manager,
Windows Azure CAT
9. 1. LE CONTEXTE TECHNIQUE
a.
b.
#mstechdays
Azure Big Compute
ParSon
#9
Innovation Recherche
10. Azure Big Compute
Azure Big Compute = Nouveaux nœuds Azure + HPC Pack
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
11. Azure Big Compute
HPC Pack : cluster privé
•
•
#mstechdays
N
N
N
N
N
N
N
N
Administration : matérielle et logicielle
N
N
M
N
Cluster dimensionné par rapport à la charge maximale
•
AD
Active Directory, Manager et nœuds
dans l’infrastructure privée d’entreprise
N
#11
Innovation Recherche
12. 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
13. 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
14. 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 glissantes
Audio numérisée
ParSon
Découpage et classification
#mstechdays
#14
Innovation Recherche
voix
musique
ParSon
15. 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
16. ParSon
Meilleur temps d'éxécution (s)
Les performances sont limitées par les entrées-sorties
#mstechdays
2048
512
128
IO bound
32
en réseau, à froid
en local, à froid
8
1
4
#16
16
Nombre de noeuds
Innovation Recherche
64
256
17. 2. PORTAGE VERS AZURE BIG COMPUTE
a. Portage du code C++ : Linux Windows
b. Portage de la distribution : Cluster HPC Cluster Manager
c.
#mstechdays
Portage et adaptation des scripts de déploiement
#17
Innovation Recherche
18. 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
Portage
19. 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
20. 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
21. 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
Portage
22. 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
Portage
24. Méthodologie : suppression du goulet d’étranglement
•
Optimisations
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++
#mstechdays
#24
Innovation Recherche
25. 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
26. Accélération du transfert réseau
•
Optimisations
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
32. Notre retour d’expérience sur la technologie Big Compute
•
Support des standards HPC : C++, OpenMP MPI
,
–
•
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
–
•
Transfert de données
–
–
Des performances solides
–
–
•
•
10 jours de portage
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 !
#mstechdays
#32
Administration des nœuds
•
Innovation Recherche
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
33. 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
34. Merci pour votre attention
•
Antoine Poliakov
apoliakov@aneo.fr
•
Stéphane Vialle
stephane.vialle@supelec.fr
•
ANEO
http://aneo.eu
http://blog.aneo.eu
•
Merci
Tous nos remerciements à
Microsoft pour nous avoir
prêté les machines !
?
Une question : n’hésitez pas !
Retrouvez nous aux TechDays !
Stand ANEO jeudi 11h30 - 13h
Au cœur du SI > Infrastructure moderne avec Azure
#mstechdays
#34
Innovation Recherche