1 / 69

Optimisation des performances

De nos outils informatiques. Optimisation des performances. Sommaire. I-Les bases de l’optimisation Bases algorithmiques Bases programmatiques Bases architecturales Bases matérielles II-Les optimisations SSE Principe de fonctionnement des SSE Utilisation des SSE en programmation

gerald
Download Presentation

Optimisation des performances

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. De nos outils informatiques Optimisation des performances

  2. Sommaire I-Les bases de l’optimisation Bases algorithmiques Bases programmatiques Bases architecturales Bases matérielles II-Les optimisations SSE Principe de fonctionnement des SSE Utilisation des SSE en programmation Impact des optimisations SSE III-Exemple d’utilisation multicores Présentation de la technologie multicores Tirer partie d’une technologie multicores Utilisation concrète d’un outil pour le parallélisme

  3. Bases algorithmiques I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation Exemple basique : la multiplication • Multiplication « standard » • Multiplication russe ou égyptienne

  4. I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation

  5. Bases algorithmiques I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation Exemple basique : la multiplication • Multiplication « standard » • Multiplication russe ou égyptienne • Algorithme de Karatsuba • Algorithme de Fürer Extrapolation à l’algorithmique

  6. Bases programmatiques I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Le langage assembleur • Les langages compilés • Les langages émulés

  7. Bases architecturales I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Les instructions assembleur • Instructions basiques • Instructions complexes • Les unités ALU et FPU

  8. I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation

  9. Bases matérielles I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • La course au Mégahertz • Des contraintes physiques • La solution du « pipeline »

  10. I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation

  11. Bases matérielles I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • La course au Mégahertz • Des contraintes physiques • La solution du « pipeline » • Le « superscalaire »

  12. I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation

  13. Bases matérielles I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • La course au Mégahertz • Des contraintes physiques • La solution du « pipeline » • Le « superscalaire » • Les multi-cœurs ou multicores • L’ajout d’instructions SIMD

  14. Fonctionnement des SSE I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Apparu en 1999 sur Pentium III • 70 nouvelles instructions assembleur

  15. I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation

  16. Fonctionnement des SSE I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Apparu en 1999 sur Pentium III 70 nouvelles instructions assembleur • SSE2 ajoute support « 64 bits » • SSE3 orienté « traitement du signal »

  17. I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation

  18. Programmation des SSE I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Ecriture possible en assembleur

  19. I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation

  20. Programmation des SSE I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Ecriture possible en assembleur • Librairies de haut niveau • Compilateurs optimisés

  21. Impact des SSE I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Comparaison • Temps de développement du code vs. • Temps d’exécution

  22. Impact des SSE I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Langage C simple • 30s d’exécution, 2min de développement • Optimisé « -O3 » • 19s, et toujours 2min • Langage C correct • 22s, 2min • 14s une fois optimisé «-O3 »

  23. Impact des SSE I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Langage C optimisé • 17s sans optimisation compilateur, 11s avec • Assembleur simple • 9,4s d’exécution, 30min de développement • Assembleur avec SSE • 6,7s et 45min • Assembleur optimal • 3,6s et largement plus d’une heure de dév.

  24. I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation

  25. Architectures multicores I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Echec de la montée en fréquence Bataille marketing entre Intel et AMD • Technologie issue des serveurs • « Plusieurs processeurs en un »

  26. I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation

  27. I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation

  28. Tirer partie du multicores I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Difficultés à utiliser plusieurs cores Pas de possibilité de compilation « -O3 » • Il faut alimenter les cores Une tâche définie pour chaque core • Exemple des interfaces graphiques

  29. Tirer partie du multicores I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Impossibilité de parallélisation • Calculs lourds • Calculs matriciels • Raytracing • Simulations • Analyse de données

  30. Intel Parallel Studio I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Suite logicielle composée de : • Parallel Advisor • Parallel Composer • Parallel Inspector • Parallel Amplifier

  31. Intel Parallel Studio I-Bases optimisation Algorithmiques Programmatiques Architecturales Matérielles II-Optimisations SSE Fct. des SSE Programmation Impact III-Exemple concret Les multicores En tirer partie Utilisation • Threading Bulding Blocks Simplifient l’utilisation des cores en C • Débogage pas à pas sur plusieurs threads • Détection des verrous infinis

  32. Conclusion • Nécessité de connaître • Matériel • Logiciel • Lien entre les deux • Choisir entre • Temps de développement • Efficacité d’une solution logicielle

  33. Conclusion • S’adapter aux multicores • Les logiciels s’alourdissent inutilement • Une autre alternative ?

  34. Système de gestion de service aérien HELIOPS

  35. Sommaire I- La base militaire EALAT II- Présentation du projet III-Mise en place du projet IV-Etude du projet V-Réalisation du projet Plateforme de développement Développement de l’application Des tests continus Mise en production et futurs développements

  36. EALAT I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production • Ecole d’Aviation Légère de l’Armée de Terre

  37. I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production

  38. I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production

  39. Le projet I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production • Succéder à plusieurs essais « ratés » • 1- version papier • 2- version Excel basique • 3- DIC • 4- Excel avec macros

  40. I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production

  41. Mise en place I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production • Capitaine Génovèse, chef MOA • Mr Nerrin et moi-même, MOE • Sergent Etourneaux, tests et validations • Planning projet • Nom du projet HELIOPS

  42. Etude du projet I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production • Visites des services impliqués • Réunions pour cahier des charges • Fonctionnement du service aérien

  43. Etude du projet I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production • Méthodologie UML • Diagramme de flux • Diagramme des cas d’utilisation • Diagramme de séquence • Réalisation base de données test • Maquettage

  44. I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production

  45. I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production

  46. I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production

  47. I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production

  48. Mise en place I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production • Serveur 2008 • Visual Studio 2008 SP1 • Silverlight Tools • Microsoft SQL Serveur 2008 SP1 • Subversion • Windows Sharepoint Services

  49. Développement I-Base EALAT II-Le projet III-Mise en place IV-Etude V-Réalisation Plateforme Développement Tests continus Production • Etude des possibilités techniques

More Related