Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parBrice Magnier Modifié depuis plus de 10 années
2
MS Services aux TechDays : une grande première!
Objectifs : Notoriété; Image ; Impact business Pour nous Services, les TechDays c’est : 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 Informations clés sur les TechDays en quelques chiffres: inscrits en ligne, visiteurs en 3 jours, visiteurs uniques Retours de l’édition précédente: Plus de 150 journalistes, analystes et blogueurs, 200 interviews,. •Plus de 100 partenaires sponsors •Plus de webcasts views • viewers uniques sur les retransmissions en direct Nos objectifs? C’est avant tout gagner et notoriété, il faut faire connaître Microsoft Services et se positionner. A la fin des TD nous voulons que les gens ressortent avec une idée claire de ce qu’est MS Services: notre engagement est d’accompagner clients et partenaires dans leur évolution vers les nouvelles technologies. Connaître notre cœur de métier mais aussi, la thématique phare étant le cloud, faire savoir que nous sommes un acteur incontournable qui ouvre la voie vers le Cloud. date
3
Microsoft Services: Un accompagnement global de nos clients
Architecture & Planning Planification Conseil et Projets Déploiement et adoption Support Optimisation et Opération Evaluation Développement Déploiement Stabilisation Opérations Support Premier Enterprise Strategy Consulting 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 Division Services Monde 2010 82 pays couverts employés partenaires 44 langues parlées par nos ingénieurs
4
HPC Services pour Excel 2010
9 Février 2011 Thomas 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
Composantes de HPC Server
Bibliothèques de distribution Outils pour utiliser tous ces ressources de calculs - MS-MPI - SOA 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 Station de travail Clients HPC Ressources de calculs Serveur Locaux Head & Broker Nodes Jobs Requests Windows HPC Server 2008 R2 is a complete, integrated HPC stack for running a variety of HPC applications. The stack consists of both the operating system ( Windows Server 2008 R2 HPC Edition) and the HPC middleware (the HPC Pack.) A variety applications types can be run on Windows HPC Server including: Traditional MPI based applications Emerging Service Oriented Architecture (SOA) based applications. Batch Interactive applications. Parametric sweeps More … The figure show a prototypical HPC Server deployment. Note that Windows HPC Server is flexible and can be deployed in a variety of configurations. The compute nodes can be Windows 7 desktop workstations as well. What is not shown in the slide is the rest of the HPC offering that includes development tools (Visual Studio) and management/administration tools (HPC Cluster Manager & System Center). For more information: Ressources Azure * toutes: MPI, SOA, Batch, Interactive, Parametric sweeps. …
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
HPC Cluster SOA Organisation des requêtes
4/2/2017 3:29 PM HPC Cluster SOA Organisation des requêtes Compute Nodes Head Node 1. Crée une Session 2. Le gestionnaire de session démarre le job WCF Broker et le job WCF Service pour le job client 3. requêtes 4. requêtes Workstation Broker Node 5. Réponses 6. Réponses Construit sur des Web Service Standards (WS* interop) © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
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
HPC Services pour Excel 2010 Excuter des classeurs sur un cluster
4/2/2017 3:29 PM HPC Services pour Excel 2010 Excuter des classeurs sur un cluster 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 Partition Execute Merge Initialize Finalize Get Version Get Version validates the version attempting to be run to be sure it is supported…this was added for backwards compatibility as we develop future versions. HPC_Initialize copies a workbook to a specified network share. The HPC_Partition macro is designed to subdivide the calculation into individual steps, so we can send those steps one at a time to the cluster for calculation. This macro does two important things: first, it collects the data necessary for any individual calculation step. Any data we need for a single calculation will be passed as the return value of this function. Second, this macro controls execution. When the calculation is complete, the macro should return Null – that tells the HPC library that there are no more calculation steps. The HPC_Execute function actually runs a single step in the calculation. It’s important to understand that this function – this macro, unlike the other macros – runs on the cluster compute nodes. When the HPC calculation runs, the library will copy the whole workbook to the HPC cluster. On cluster compute nodes, Excel will start and load the workbook; then it will call the HPC_Execute macro. The third key macro is HPC_Merge. This macro runs on the desktop, collects the results of the calculation from the HPC_Execute macro, and processes them on the desktop.
14
Offloading de classeurs Excel vers les clusters
Compute Nodes Head Node Demande de Session Affectation Broker Spreadsheet Affectation de tâche Résultats Résultats Soumission de tâche Brokers
15
Macros Excel HPC Distribution du code VBA 5 Macros Excel 2010
16
Macros Excel HPC : Qui et Où ?
17
HPC Services for Excel 2010 Code VBA original
Boucle de calcul itérative Function RunModel() ' set up variables NumIterations = Range("C8").Value ' run calculation in a loop For n = 1 To Range(“Symbols”).Cells.Count rslt = CalculateSingleIteration(Range(“Symbols”).Cells(n)) ConsolidateResults rslt Next n ' complete Call UpdateCharts End Function
18
HPC Services for Excel 2010 Code VBA modifié
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 = Null End If End Function Function HPC_Execute( data As Variant ) As Variant ' run single iteration HPC_Execute = CalculateSingleIteration(data) Function HPC_Merge( data As Variant ) ' insert each execute result into workbook ConsolidateResults data Function HPC_Finalize() ' update charts Call UpdateCharts The parameters (or inputs) to the HPC_Execute macro are whatever we returned from the HPC_Partition macro. That’s why it’s important to collect all necessary information in that macro, and return it – when HPC_Execute is called on the compute node, it doesn’t know anything about the workbook except what it gets sent via the parameters. HPC_Execute can return any data – there’s a single return value, but you can return an Array of values so you can return a large amount of data if you want. Remember that this macro is running on the compute node. Any information we want to preserve – the results of the calculation and anything else – must be passed as the return value of the function. Everything else – the cells in the workbook, global variables, and so on – will be lost, because the macro is running on a cluster compute node. That means whatever information you want to preserve from the calculation must be returned from the function.
19
HPC Services for Excel 2010 Execution des classeurs sur un cluster
La logique métier est déplacée dans le code mais reste inchangée Référence: C:\Program Files\Microsoft HPC Pack 2008 R2\Bin\Microsoft.Hpc.Excel.tlb 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) The parameters (or inputs) to the HPC_Execute macro are whatever we returned from the HPC_Partition macro. That’s why it’s important to collect all necessary information in that macro, and return it – when HPC_Execute is called on the compute node, it doesn’t know anything about the workbook except what it gets sent via the parameters. HPC_Execute can return any data – there’s a single return value, but you can return an Array of values so you can return a large amount of data if you want. Remember that this macro is running on the compute node. Any information we want to preserve – the results of the calculation and anything else – must be passed as the return value of the function. Everything else – the cells in the workbook, global variables, and so on – will be lost, because the macro is running on a cluster compute node. That means whatever information you want to preserve from the calculation must be returned from the function.
20
HPC Services for Excel 2010 Running workbooks on a cluster
Single-deployment/multi-executions Design application so that user specified data is passed via SOA messages Copy workbooks to CNs via clusrun for best performance File share works for small clusters Multi-deployment/multi-executions Allows data to be passed in workbook itself and more dynamic ‘what if’ type usage For small clusters, save workbook to file share before execution For large clusters, waiting on SOA larger common data solution
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
Chemin de migration Etude de migration vers Excel 2010 Optimisation du code Migration du code VBA vers Excel 2010 HPC (prise en compte des compute nodes) Etapes de Migration Calcul distribué: Calcul sur plusieurs postes en parallèle et agrégation des résultats date
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émo VBA Exemple simple
Exemples 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émo UDF: Exécution d’une fonction UDF sur des Compute Nodes
Calcul 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\ServiceRegistration Et 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émo Démonstration .NET/SOA Simulation MonteCarlo
Suivi: 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ésultats S’affichent dans la partie diagnotics
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)
40
Questions ?
41
Liens HPC Windows HPC Server 2008
HPC Services for Excel Compatibilité Modifications apportées dans Excel 2010 Microsoft Office Code Compatibility Inspector user's guide Excel 2010 Object Model Changes Since Earlier Versions
43
MSDN et TechNet : l’essentiel des ressources techniques à portée de clic
Portail administration et infrastructure pour informaticiens Portail de ressources technique pour développeurs
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.