35

Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

Embed Size (px)

DESCRIPTION

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)

Citation preview

Page 1: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC
Page 2: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

Innovation Recherche

Retour d'expérience

Big Compute & HPC

sur Windows AzureAntoine Poliakov

Consultant HPC

ANEO

[email protected]

http://blog.aneo.eu

Page 3: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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

Page 4: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#mstechdays Innovation Recherche#4

Etat de l’art du cloud pour le HPC

Expériences

Technologie

Cloud HPC

Cas d’usage

logiciel HPC

Expérimenter le cloud HPC : 3 ingrédientsIntroduction

Page 5: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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

Page 6: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#mstechdays Innovation Recherche#6

Un projet collaboratif : 3 acteurs complémentairesIntroduction

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 HPC

Azure 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

Page 7: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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 Makassikis

Consultant HPC

Wilfried Kirschenmann

Consultant HPC

Antoine Poliakov

Consultant HPC

Stéphane Rossignol

Pr adjoint,

Traitement signal

Stéphane Vialle

Professeur,

Informatique

Xavier Pillons

Principal Program Manager,

Windows Azure CAT

Kévin Dehlinger

Stagiaire ingénieur

CNAM

Page 8: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#mstechdays Innovation Recherche#8

1. Contexte technique

2. Retour d’expérience du portage

3. Optimisations

4. Résultats

Sommaire

Page 9: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

Innovation Recherche#mstechdays #9

1. LE CONTEXTE TECHNIQUE

a. Azure Big Compute

b. ParSon

Page 10: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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

Page 11: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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 logicielle

AD

M

N N

N N

N N

N N

N N N N

Page 12: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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

Page 13: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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 moyenne

Dimensionnement 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

Page 14: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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 audioParSon

ParSon

Découpage et classification

Audio numérisée

voix

musique

Page 15: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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 clusterCluster Linux

3. Déploiement des entrées

5. ExécutionTâches inter-

communicantes

Données

Contrôle

Page 16: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#mstechdays Innovation Recherche#16

Les performances sont limitées par les entrées-sortiesParSon

8

32

128

512

2048

1 4 16 64 256Me

ille

ur

tem

ps

d'é

xécu

tio

n(s

)

Nombre de noeuds

en réseau, à froiden local, à froid

IO bound

Page 17: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

Innovation Recherche#mstechdays #17

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

Page 18: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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 facilePortage

Page 19: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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 clusterCluster Linux

3. Déploiement des entrées

5. Exécution

Données

Contrôle

Page 20: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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ésPaaS Big Compute

3. Déploiement des entrées

AD

Domain

controler

IaaS PaaSDonnées

Contrôle

5. Exécution

Page 21: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#mstechdays Innovation Recherche#21

A chaque mise à jour logicielle : packaging + envoi dans Azure Storage

1. 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 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

Déploiement dans AzurePortage

Page 22: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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

Page 23: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

Innovation Recherche#mstechdays #23

3. OPTIMISATIONS

Page 24: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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’étranglementOptimisations

Page 25: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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.infStart-Service -inputobject $(get-service -Name imdisk)

– imdisk.exe -a -t vm -s 30G -m F: -o rwformat 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 RAMFSOptimisations

Page 26: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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 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

Accélération du transfert réseauOptimisations

Page 27: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

Innovation Recherche#mstechdays #27

4. RÉSULTATS

Page 28: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#mstechdays Innovation Recherche#28

Le calcul passe bien à l’échelle, surtout pour les gros fichiersRésultats

Page 29: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#mstechdays Innovation Recherche#29

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

+-

Page 30: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#mstechdays Innovation Recherche#30

Débit Storage régulier (220 Mo/s), latence parfois élevée

Broadcast constant @700 Mo/s

Résultats

Page 31: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

Innovation Recherche#mstechdays #31

5. BILAN

Page 32: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#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

Page 33: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#mstechdays Innovation Recherche#33

Azure Big Compute pour la recherche et l’entreprise

• Accès au calcul sans barrière

administrative 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

Page 34: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

#mstechdays Innovation Recherche#34

Merci

?

Merci pour votre attention

• Antoine Poliakov

[email protected]

• Stéphane Vialle

[email protected]

• 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

Tous nos remerciements à

Microsoft pour nous avoir

prêté les machines !

Une question : n’hésitez pas !

Page 35: Retour d'expérience BIG COMPUTE & HPC sur Windows Azure, par ANEO et SUPELEC

Digital is business