Skip to topic | Skip to bottom
Home
Main
Main.BrianAMEDROr1.32 - 14 Oct 2006 - 06:46 - BrianAMEDROtopic end

Start of topic | Skip to actions

Page personnelle de Brian Amedro

TER - Evaluation et optimisation des benchmarks parallèles de la NASA (NPB) avec la bibliothèque ProActive

Fonction au sein de l'équipe

  • Chef de projet : Coordination du projet, mise à jour du site web, rédaction de la charte du projet
  • Etude des algorithmes NPB
  • Optimisation des implémentations
  • Rédaction des rapports et documentations

Suivi personnel

6 7 8 9 10 11 12 13 14 15 16 17 18
Heures de travail par numéro de semaine

Semaine 6 (8 heures)

  1. Les sujets de TER venant d'être affectés de façon définitive, une demande de rendez-vous a été formulée par email.
  2. Mise en place d'un forum privé sur mon serveur personnel pour nous permettre de garder une trace des commentaires que nous avons pu faire sur différents sujets. Dans nos précédents projets, ceci nous a permis d'être plus efficaces.
  3. Création de la page TWiki du TER : SuiviTERNAS?
  4. Réalisation d'une pré-version du cahier des charges afin d'avoir une base de départ pour la réunion de vendredi.
  5. Découverte de la bibliothèque ProActive, réalisation d'un helloworld
  6. Documentation sur les algorithmes NPB

Semaine 7 (12 heures)

  1. Documentation sur ProActive : Objets actifs, communications asynchrones, noeud, appel par valeur
  2. Réalisation de la première version de la charte du projet
  3. Mise en place en place d'une "mini grille de calcul" nous permettant de déployer une application sur nos machines personnelles, via le réseau Internet
  4. Etude du fonctionnement des descripteurs de déploiement

Semaine 8 (4 heures)

  1. Travail sur la charte du projet, création du diagramme de Gantt
  2. Etude de ProActive, liaisons avec les descripteurs de déploiement

Semaine 9 (12 heures)

  1. Etudes sur l'analyse des résultats d'un benchmark et la recherche des points critiques d'un algorithme, en particuliers concernant les NPB
  2. Etude superficielle des 4 benchmarks : les spécificités et buts de chacun
  3. Premiers tests sur la GRID5000
  4. Travail sur la charte du projet : révision de l'organisation du projet et précisions des objectifs

Semaine 10 (8 heures)

  1. Charte du projet
  2. Déploiement d'un calcul matriciel sur GRID5000
  3. Lecture sur les points critiques, en termes de performances, d'un programme (au travers d'une analyse des NPB)
  4. Lecture sur le réglage du Garbage Collector de Java

Semaine 11 (8 heures)

  1. Charte du projet
  2. Déploiement des benchmarks sur GRID5000
  3. Etude des algorithmes IS et CG
  4. Lecture sur les JIT (Just In Time) de Java

Semaine 12 (4 heures)

  1. Charte du projet
  2. Préparation de la pré-soutenance
  3. Ecriture d'une classe Java permettant de profiler précisement un programme Java en générant des graphiques (Timer)

Semaine 13 et 14

  1. Examens

Semaine 15 (32 heures)

  1. Travail sur le timer
  2. Travail d'optimisation sur les kernels en général (application à IS dans un premier temps)
    • Utilisation des décalages de bits pour travailler sur les log et puissances en base 2 (sur entiers)
      • ilog2 -> 75 % de gain
      • ipow2 -> 80 % de gain
    • Constatation de la lenteur des wrappers en java (valeurs moyennes sur 10 executions) :
      • int n=98765432; while( n-- > 0 ); -> 0.8 sec
      • Integer in=98765432; while( in-- > 0 ); -> 13 sec
    • Coût du cast (temps multiplié par 7)
    • Comparaison de l'utilisation des doubles ou floats : l'utilisation de floats divise le temps par 2
    • Etude du code produit par le compilateur (javac)
    • Execution de tous les benchmarks pour avoir les temps sans optimisations (opération difficile car la grille est actuellement très très chargée)
    • Optimisation des opérations de reduces
    • Limitations de certains appels réseaux

Semaine 16 (40 heures)

  1. Travail sur le générateur de nombres aléatoires : correction d'erreurs et optimisation (notamment en simulant un passage de variables par référence)
  2. Travail sur le timer des benchs
  3. Optimisation des opérations de reduces
  4. Travail sur les exceptions et l'asynchronisme
  5. Comparaison des deux patterns de groupes : ProActiveGroup et ProSPMD
  6. Travail sur la performance des objets futures
  7. Travail sur les barrières avec ProSPMD

Semaine 17 (40 heures)

  1. Ecriture du rapport final
  2. Travail sur la phase d'initialisation du kernel IS : 80% d'optimisation (de plusieurs minutes à quelques secondes)
  3. Travail sur la limitation des appels réseaux du kernel IS : 12% d'optimisation (pour cette seule optimisation), 40-50% avec les autres optimisation, notamment l'utilisation des groupes "scatter" qui permet une distribution "intelligente" des données
  4. Etude des effets du Garbage Collector de Java sur les performances globales. L'idée de forcer l'execution de ce dernier avant l'execution de chaque bench a été soulevée, mais la nature non-deterministe de son execution permet au test d'être "réaliste" car le GC peut se lancer à tout moment. Certains gains de performances ont cependant pu être constatés en forcant l'execution de ce GC en certains point du kernel IS, qui travail avec des tableaux pouvant faire jusqu'à 8 Go
  5. Travail sur le kernel EP
  6. Travail sur le Timer et intégration à l'application de lancement

Semaine 18 (48 heures)

  1. Travail sur le kernel EP : 40-50% d'optimisation, principalements java (très très peu de communications dans cet algorithme)
  2. Ecriture du rapport
  3. Comparaison globale des résultats par rapport aux implémentations initiales
  4. Dernière optimisation du kernel EP sur les communications. Même si elles sont rares, avec un très grand nombre de machines (comme sur notre test avec 345 machines), leur importance n'est plus insignifiante. La même optimisation que pour IS a donc été apportée. Il s'agit pour chaque machine de donner son résultat sans qu'on ait à la lui demander. Cette amélioration permet d'atteindre les 50% d'optimisation, surtout si le nombre de machines est elevé.

Pages connexes


  • Set ALLOWTOPICCHANGE = BrianAMEDRO
  • Set EDITBOXWIDTH = 80
  • Set EDITBOXHEIGHT = 35
  • Set EDITBOXSTYLE = width: 100%

to top

You are here: Main > TWikiUsers > BrianAMEDRO

to top

Copyright © 1999-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback