Luka Stanisi - Méthodologie de recherche reproductible adaptée à la conception et la conduite de simulations d'applications scientifiques multitâches dynamiques

15:00
Vendredi
30
Oct
2015
Organisé par : 
Luka Stanisi
Intervenant : 
Luka Stanisi
Équipes : 
Information détaillée : 

 

Jury :

  •  Mme. Sherry X. LI,  Lawrence Berkeley National Laboratory -- Rapporteur
  •  M. Raymond NAMYST,  Université de Bordeaux -- Rapporteur
  •  M. Martin QUINSON,  École Normale Supérieure de Rennes -- Examinateur
  •  M. Grigori FURSIN,  CTUNING FOUNDATION -- Examinateur
  •  M. Jean-François MÉHAUT,  Université de Grenoble -- Directeur de thèse
  •  M. Arnaud LEGRAND,  CNRS -- Codirecteur de thèse
Résumé : 

Le calcul à hautes performances s'est vu contraint d'évoluer de  façon radicalement différente durant la dernière décennie. La  miniaturisation et l'augmentation de la fréquence des processeurs a  atteint ses limites en raison des consommations d'énergies  déraisonnables induites. Cette contrainte énergétique a conduit les  fabricants de matériel à développer de nombreuses architectures  alternatives afin de répondre aux besoins toujours croissants de  puissance de calcul de la communauté scientifique. Cependant,  programmer efficacement des plates-formes aussi diverses et  exploiter l'intégralité des ressources qu'elles offrent s'avère  extrêmement difficile. L'approche classique de conception  d'application haute performance consistant à se reposer sur des  codes monolithiques offrant de nombreuses opportunités  d'optimisation est ainsi devenue de plus en plus difficile à  appliquer en raison de difficulté d'implémentation, de portabilité  et de maintenance. Par conséquent, les développeurs de telles  applications considèrent de plus en plus couramment des approches  modulaires et une exécution dynamique des différents composants. Une  approche populaire consiste à implémenter ces applications à  relativement haut niveau, indépendamment de l'architecture  matérielle, en se reposant sur un paradigme basé sur la notion de  graphe de tâches où chaque tâche correspond à un noyau de calcul  soigneusement optimisé pour chaque architecture cible. Un système de  runtime peut alors ensuite être utilisé pour ordonnancer  dynamiquement ces tâches sur les différentes ressources de calcul à  disposition.

 
 Garantir l'efficacité de telles applications sur un large spectre de  configurations reste néanmoins un défi majeur. En effet, en raison  de la grande complexité du matériel, de la variabilité des temps  d'exécution des calculs et de la dynamicité d'ordonnancement des  tâches, l'exécution des applications n'est pas déterministe et  l’évaluation de la performance de ces systèmes est très  délicate. Par conséquent, il est nécessaire de disposer d'une  méthodologie systématique, rigoureuse et reproductible pour conduire  de telles études et évaluer la performance de tels systèmes.
 
 Dans cette thèse, nous montrons qu'il est possible d'étudier les  performances de telles applications dynamiques à l'aide de  simulations, et ce de façon fiable, cohérente et reproductible.  Nous proposons dans un premier temps une méthode de travail  originale basée sur deux outils couramment utilisés dans notre  communauté, Git et Org-mode, et permettant de mettre en oeuvre une  recherche expérimentale reproductible. Cette approche simple permet  de résoudre de façon pragmatique des problèmes tels que le suivi de  la provenance des expériences ou la réplication de l'analyse des  données expérimentales. Dans un second temps, nous contribuons à  l'évaluation de performance d'applications dynamiques en concevant  et en validant une simulation/émulation hybride à gros grains de  StarPU, un runtime dynamique utilisant le paradigme de graphes de  tâches et particulièrement adapté à l'exploitation d'architecture  hybrides. Cette simulation est réalisée à l'aide de SimGrid, un  simulateur polyvalent de systèmes distribués. Nous présentons  comment notre approche permet d'obtenir des prédictions de  performances d'exécutions réelles fiables sur un large panel de  machines hétérogènes. Nous appliquons notre approche à deux classes  de programmes différentes, les applications d'algèbre linéaire dense  et creuse, qui sont représentatives d'un grand nombre d'applications  scientifiques.