MS Services aux TechDays : une grande première! Près de 40 Sessions Services 7 interventions RV...

Preview:

Citation preview

MS Services aux TechDays : une grande première!

Près de 40 Sessions Services 7 interventions RV Décideurs

IT 1 Stand dédié Messages Services en

Plénière Vidéo

Web TV: experts & caméra mobile Vidéo des coulisses Services

PR Annonce des offres Services Cloud

en conférence de presse Interviews Presse Témoignages clients et partenaires

Pour nous Services, les TechDays c’est :

Objectifs : Notoriété; Image ; Impact business

33

Microsoft Services:Un accompagnement global de nos clients

Architecture & PlanningPlanification

Conseil et ProjetsDéploiement et adoption

SupportOptimisation et Opération

Evaluation

Planification

Développement

Déploiement

Stabilisation

Opérations

Support

Support Premier

Enterprise StrategyConsulting Services

Division Services France 2010

• 180 Consultants• 125 Technical Account Managers • 190 Ingénieurs Support• 17 Responsables de Mission• 41 Partenaires référencés

www.microsoft.fr/services

Division Services Monde 2010

• 82 pays couverts• 18 000 employés• 35 000 partenaires• 44 langues parlées par nos ingénieurs

4

HPC Services pour Excel 20109 Février 2011Thomas Varlet, Muriel Barthelemy, Joyanta Sen

Microsoft France

5

Agenda

• Concept HPC, Architecture• Excel 2010: Concepts• Chemin de migration

• Migration du code existant (VBA)• Retours d’expériences

• Démonstrations VBA (workbook offloading)• Déomonstration UDF (udf offloading)• Démonstration .NET (VSTO / SOA)

6

Concept HPC, Architecture

7

Bibliothèques de distribution

Outils pour utiliser tous ces ressources de calculs - MS-MPI - SOA

Composantes de HPC Server

Ordonnanceur

Gérer les ressources de calculs des machines du cluster pour les utilisateurs

Administration

Administrer/surveiller les machines du cluster

8

Windows HPC Server 2008 R2

Une boite à outils complète et intégrée pour toutes* les applications parallèles

Clients HPC

Jobs

Requests

Head & Broker Nodes

Ressources de calculs

* toutes: MPI, SOA, Batch, Interactive, Parametric sweeps. …

Station de travail

Serveur Locaux

Ressources Azure

9

Plateforme pour tous types d’applications SOA sur un cluster HPC

• Expose les fonctions de calculs comme un service WCF

• Applications distribuées

• Utiliser la puissance offerte par les cluster aux applications business

• Optimisé pour une latence faible (ms) et une charge importante

• Debugger et analyser afin de créer des applications robustes

• Support pour des applications critiques

Tolérance aux pannes du hardware et du réseau

Tolérance aux pannes des postes/applications clientes

10

4. requêtes

6. Réponses

Compute Nodes

Workstation

5. Réponses

3. requêtes

2. Le gestionnaire de session démarre le

job WCF Broker et le

job WCF Service pour le job client

1. Crée une Session

HPC Cluster SOAOrganisation des requêtes

Construit sur des Web Service Standards (WS* interop)

Head Node

Broker Node

11

Excel 2010: Concepts

• Constat:• Excel souvent utilisé comme un environnement

de développement pour de la simulation• Les calculs longs sont caractérisés par des

itérations• Excel sur des nœuds de calcul:

• Excel s’exécutera sur chaque nœud de calcul• SDK avec des exemples d’implémentation• Paralléliser des calculs longs

12

Excel 2010: Concepts

• Exécuter Excel 2010 sur un cluster• Activer l’intégration HPC (installation des outils clients

et/ou paramétrer le nom du cluster et du job)• Définir un modèle de job (ex: le job contiendra la liste

des machines avec Excel et les personnalisations)• Scénario simple:

• Intégration des macros VBA HPC• Définir un répertoire partagé• Positionner/Récupérer des valeurs dans des cellules puis

calculer le classeur Excel• Scénarios plus avancés:

• Développement de son propre service SOA• S’adresse aux développeurs .NET• Utilisation de l’UDF offloading (En C car les XLAM et les

Add-in COM interagissent avec Excel)

13

Partition Execute Merge

Initialize

Finalize

Get Version

• Proposer aux développeurs VBA de créer des classeurs pour un cluster– Pas de connaissance .NET ou HPC/SOA/jobs/tasks nécessaires

• Modèle d’orchestration distribué (pattern fork-join) implémenté à l’aide fonctions de callback VBA

• Execution de classeurs localement ou sur un cluster sans changer le code

HPC Services pour Excel 2010Excuter des classeurs sur un cluster

14

Offloading de classeurs Excel vers les clusters

Compute Nodes

Spreadsheet

Head Node

Brokers

Demande de Session

Affectatio

n Broker

Soumission de tâche

Affectation de tâche

Résultats

Résultats

15

Macros Excel HPC

• Distribution du code VBA5 Macros Excel 2010

16

Macros Excel HPC : Qui et Où ?

17

Function RunModel()' set up variablesNumIterations = Range("C8").Value

' run calculation in a loopFor n = 1 To Range(“Symbols”).Cells.Count

rslt = CalculateSingleIteration(Range(“Symbols”).Cells(n))ConsolidateResults rslt

Next n

' complete Call UpdateCharts

End Function

Boucle de calcul itérative

HPC Services for Excel 2010Code VBA original

18

Dim partitionCount As Integer

Function HPC_Partition() As Variant ' partition work

If (partitionCount < Range(“Symbols”).Cells.Count) Then HPC_Partition = Range(“Symbols”).Cells(partitionCount)Else HPC_Partition = NullEnd If

End Function

Function HPC_Execute( data As Variant ) As Variant ' run single iteration HPC_Execute = CalculateSingleIteration(data)End Function

Function HPC_Merge( data As Variant ) ' insert each execute result into workbook ConsolidateResults dataEnd Function

Function HPC_Finalize() ' update charts Call UpdateChartsEnd Function

HPC Services for Excel 2010Code VBA modifié

19

Function Button_OnClick()' Create a new excelCient instance per session

Set excelClient = New excelClient ' Initialize the excel client with this workbook and a remote workbook path excelClient.Initialize ThisWorkbook calculateLocal = Sheet1.OnLocalButton.Value

' Run on local machine or cluster as chosen in workbook excelClient.Run calculateLocal

End Function

* Execution can be initiated from outside VBA (Excel VSTO add-in, separate process)

La logique métier est déplacée dans le code mais reste inchangéeRéférence: C:\Program Files\Microsoft HPC Pack 2008 R2\Bin\Microsoft.Hpc.Excel.tlb

HPC Services for Excel 2010Execution des classeurs sur un cluster

21

Chemin de migration

• Migration du code existant:• Migrer la feuille en Excel 2010 (cf whitepaper)• Optimiser le code VBA• Enlever les interactions avec l’utilisateur

pendant l’exécution du code :• Boîte de dialogues• Enregistrer les messages d’erreurs plutôt

que les afficher

22

Chemin de migration

• Retours d’expériences:• Application dans le domaine de l’assurance

• Le calcul stochastique est l’étude des phénomènes aléatoires dépendant du temps (théorie des probabilités)

• Calcul initial: 30 jours (beaucoup de simulations et de projections) - Bilan d‘Actif/Passif et projection dans le futur.

• Feuille de Calcul Excel avec des calculs réalisés en VBA (Excel 2003)

• Calcul final: moins de 3 jours (12x)• 4 postes (4 cœurs) utilisés comme des Compute Nodes

23

Etude de migration vers Excel 2010

Optimisation du code

Migration du code VBA vers Excel 2010

HPC (prise en compte des

compute nodes)

Chemin de migration

• Etapes de Migration

• Calcul distribué: Calcul sur plusieurs postes en parallèle et agrégation des résultats

24

Chemin de migration

• Constats:• Migration du code VBA aisée• Gain non négligeable de l’architecture HPC server

et d’Excel 2010 en terme de temps de calcul (temps divisés par 12)

• Gain sur l’utilisation d’investissement existants (Excel 2010)

• La majorité des scénarios sont implémentés en VBA

• Peu de cas avec de l’UDF offloading (XLL)• 1 cas aux US avec une utilisation de .NET/VSTO• Les gains de performances sont importants avec

une évolutivité linéaire jusqu’à 6-8 noeuds

25

Etapes pour migrer une feuille existante• Localisation des itérations dans une application existante• Localisation d'une fonction pour consolider les résultats• Importation des templates de macros• Remplir les fonctions suivantes:

• HPC_Initialize : Initialisation d‘un calcul. Permet de gérer les étapes du calcul

• HPC_Partition: passe des données à HPC_Execute (itération)

• HPC_Execute : Récupère les données de HPC_Partition et exécute le calcul en passant l'itération

• HPC_Merge: Récupère les données de HPC_Execute et ajouter les données dans la feuille de calcul

• Utilisation du cluster manager pour gérer le job

26

DémoVBAExemple simpleExemples avancés : Evaluation du prix d’une action avec des conditions aléatoires

27

UDF Offloading

• Possibilité de lancer les UDFs sur les Compute Nodes

28

DémoUDF:Exécution d’une fonction UDF sur des Compute NodesCalcul de nombres premiers

29

Développement SOA / .NET• Simulation MonteCarlo du SDK:

• Utilisation de VSTO• Le scheduler se réalisera en .NET• Le service WCF sera copié sur chaque compute

node

30

Développement SOA

• Configuration : • Le fichier de configuration sera copié dans le

répertoire:• C:\Program Files\Microsoft HPC Pack 2008 R2\

ServiceRegistrationEt visible dans Configuration / Services

31

Développement SOA

• Concept:• La feuille de calcul appelle un service WCF• Chaque compute note appellera un service WCF

localement et transmettra les données au broker node

• L’information est remontée ensuite du borker node vers le poste client

32

SOA

• Console: liste des jobs, activité des Compute Nodes

33

DémoDémonstration .NET/SOASimulation MonteCarloSuivi: job Management/Default

34

Troubleshooting

35

Comment procéder ?

• En utilisant la console (Cluster Manager)• Utiliser les logs:

• Configuration / Services: positionner l’event level ainsi que le nom des fichiers de log

• En lançant des tests:• Les résultatsS’affichent dans la partiediagnotics

36

Exemple d’erreur

• Le binaire pour le service WCF n’est pas installé sur un poste:

• La version du Framework peut ne pas correspondre (3.5)

37

Etat de santé des Compute Nodes

38

Résolutions

• Installer les prérequis sur les compute nodes• Redémarrage des services (ex: HPC Broker Service)• En cas de lenteur: exclure un à un des compute

nodes pour identifier celui qui pose problème (voir rapports)

39

40

Questions ?

41

Liens

HPC

• Windows HPC Server 2008• http://www.microsoft.com/france/serveur/hpc/default.mspx

• HPC Services for Excel• http://technet.microsoft.com/fr-fr/library/ff877820(en-us,WS.10).

aspx

Compatibilité• Modifications apportées dans Excel 2010

• http://technet.microsoft.com/fr-fr/library/cc179167.aspx• Microsoft Office Code Compatibility Inspector user's guide

• http://technet.microsoft.com/en-us/library/ee833946.aspx• Excel 2010 Object Model Changes Since Earlier Versions

• http://msdn.microsoft.com/en-us/library/ee836187(office.14).aspx

42

43

MSDN et TechNet : l’essentiel des ressources techniques à portée de clic

http://technet.com http://msdn.com

Portail administration et infrastructure pour informaticiens

Portail de ressources technique pour développeurs