PDC 08 – Microsoft Visual Studio – Bringing out the Best in Multicore Systems

Session donnée par Hazim Shafi, principal Architect chez Microsoft.

J'ai finalement opté pour cette session, et ai mis de côté « ASP.NET 4.0 Roadmap » en me disant que pas mal de mes collègues pourront me faire un retour sur cette dernière ;)

La session est construite comme un cours que le speaker donne sur ParallelFX chez Microsoft.

Visual Studio 2010 inclut beaucoup de fonctionnalités pour le développement parallèle pour :

  • Réduire la complexité du développement
  • Fournir des outils d'analyse d'exécutions concurrentielles

Une nouvelle équipe à été créée chez Microsoft pour gérer tout ce qui concerne le développement parallèle : Parallel Computing Team.

Les outils d'analyse :

  • Parallel Debugger Toolwindows
  • Profiler Concurrency analysis

     

  1. Comprendre vos objectifs

Il est nécessaire de ne paralléliser que si c'est nécessaire. Pour cela il faut connaître ses utilisateurs et son écosystème (application stand alone ou sur un serveur mutualisé ?).

Très souvent, les optimisations I/O, mémoire, et d'algorithme sont suffisantes pour atteindre les objectifs de performances.

Pour la démo de cette étape, Hazim utilise le profiler de Visual Studio sur une application. Les modes disponibles sont maintenant :

  • Sampling
  • Instrumentation
  • Concurrency
  • Contention

     

  1. Mesurer les performances existantes

Il faut instrumenter l'application, identifier les points critiques de l'application. Visual Studio 2010 fournira des outils supplémentaires pour analyser les performances en facilitant l'instrumentation du code.

  1. Identifier les opportunités de parallélisme

De nouvelles vue du profiler sont disponibles Visual Studio :

  • CPU utilization analysis
    • Comment l'utilisation évolue au cours du temps
  • Thread blocking Analysis
    • Permet d'identifier pourquoi un thread ne s'exécute plus
    • Permet d'accéder au code source potentiellement responsable du bloquage
    • Donne les dépendances avec les I/O disque (fichier / temps d'accès) !! J
  • Core execution Analysis
    • Montre comment les threads sont répartis sur les ressources système
    • Permet d'identifier les problèmes liés à l'affinité des Threads

Il est possible de connaitre la dépendance de synchronisation entre les threads. (Quel thread est en attente du mien, etc.)

4. Exploiter le parallélisme

Paralléliser l'accès aux données : utilisation de PLINQ.

La nouvelle bibliothèque « Parallel Pattern Library » permet de paralléliser suivant des modèles existants (Exécution groupées de tâches en parallèle, for parallèlisé).

En conclusion, Hazim rappelle que les tâches du développeur restent :

  • S'assurer que les tâches qu'on développe peuvent s'exécuter en parallèle
  • Gérer la synchronisation

.Dispose();

Publié lundi 27 octobre 2008 22:47 par Etienne Margraff
Classé sous
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires


Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01