15:30

Thèse de Nicolas Vidal : « DASH : ordonnancement des données d'entrée sortie à l'échelle »

En calcul haute performance, les plateformes (super-ordinateurs) sont composées de plusieurs nœuds dédiés aux Entrées/Sorties (E/S). Ces nœuds sont alloués à différents utilisateurs. Cependant, suivant la croissance et l'optimisation des machines, les quantités de données impliquées dans leurs calculs augmente. Comme le stockage est partagé entre les différentes applications, trop d'accès concurrents au système de fichier provoque une perte
de performance. Cette thèse consiste à étudier les manières d'ordonner les différents accès aux systèmes de fichier afin d'éviter la contention. Dans un second temps, nous étudions comment placer les applications sur la plateforme afin d'éviter ce problème en amont. Enfin, nous étudions comment étendre des politiques standard de gestion de ressources afin de prendre en compte les Entrées/Sorties et ce que cela traduit en termes d'utilisation de ressources et de performance. Les machines parallèles sont composées de ressources de calcul divisées en grille de nœuds de calcul. Un (ou parfois plusieurs) nœud dédiés aux E/S est à la disposition de chaque grille pour accéder aux systèmes de fichier parallèle (SFS). Nous considérons que lorsqu'une application a commencé à effectuer un transfert de données, elle doit le finir. Dans la majeure partie de notre travail et sans mention du contraire, seulement une seule application est autorisée à effectuer des opérations d'Entrées/Sorties sur un nœud donné. La performance de la machine est mesurée par le temps total d'exécution (temps écoulé entre le début et la fin de toute la charge de travail). Cette métrique est orientée plateforme. Dans notre modèle, chaque application est constituée d'ue série de phases distinctes consécutives: une phase de calcul (exécutée sur les nœuds de calculs) et une phase d'E/S i.e le transfert d'un certain volume de données utilisant la bande passante disponible. Du côté des applications, on mesure le ratio d'étirement (quotient entre le temps d'exécution d'une application et sa borne inférieure: celui optimal, sans contention). Il s'agit d'une métrique orientée utilisateur? Nous cherchons à allouer des ressources de la plateforme à des applications et ordonner leurs opérations E/S afin d'optimiser les métriques susmentionnées. Après avoir présenté dans un premier temps des solutions utilisant des ordonnancements par paquets, il est naturel de faire la comparaison avec des politiques standards. En pratique, les super calculateurs utilisent largement des heuristiques de liste pour gérer l'allocation des ressources. Nous avons donc adapté les contraintes de bande passante aux heuristiques de liste. D'abord, nous avons considéré des applications s'exécutant simultanément sur une plateforme parallèle; l'ensemble des ressources de calcul et les nœuds d'E/S étant déjà alloué à chaque application. Le problème étudié étant d'ordonner une séquence d'opérations d'E/S à exécuter sur un nœud donné. Nous avons étudié différentes solutions. Les résultats les plus probants portent sur les heuristiques de liste. Une telle heuristique consiste à ordonner les opérations disponibles suivant un ordre de priorité prédéfini à chaque fois qu'une ressource est disponible. Elles sont largement utilisées de par leur facilité d'implémentation et de mise en œuvre. Nous avons montré leur efficacité. En simulant la charge de travail d'un calculateur, nous avons montré expérimentalement que des politiques "équitables" visant à équilibrer les ressources entre les différentes applications ont de meilleures performances en comparaison de politiques cherchant à libérer le plus rapidement possible les ressources; y compris au niveau de la machine. Après avoir considéré que les ressources étaient déjà allouées, nous avons développé notre modèle afin de définir comment faire cette allocation. Nous proposons un algorithme prenant comme contrainte non seulement les requêtes en termes de processeurs mais aussi les besoins en termes de bande passante. L'algorithme fonctionne en deux parties : le premier partitionne les applications en paquets en utilisant une procédure "meilleure premier" (Best fit) en utilisant leur temps d'exécution espéré et la quantité de données moyenne mise en jeu. La seconde partie ordonne ce paquet sur les différents nœuds d'Entrées/Sorties. Comparé avec une approche standard et en utilisant un seul noeud d'E/S, notre stratégie améliore grandement le facteur d'étirement tout en dégradant légèrement le temps total d'exécution. Cependant cette dégradation est la conséquence d'un bien meilleur contrôle de l'utilisation des ressources. En cas de contention, les applications concernées attendent pour effectuer leurs opérations d'E/S tout en conservant leurs ressources de calcul. Dans notre solution, la plateforme est moins chargée de par les contraintes de bande passante mises en place pour limiter ce scenario. Ces ressources inutilisées peuvent être récupérées en aval, par exemple en utilisant une méthode de remblayage. Avec plus de nœuds d'E/S notre stratégie respectueuse de la bande passante a de meilleure performance pour les deux métriques. Nous observons que l'ordonnancement par paquet conduit à une limite en moyenne qui permet des phases d'E/S très intenses à condition qu'elles soient compensées pendant l'exécution. En comparaison, les heuristiques de listes suivent une limitation à chaque instant. Par conséquence, les heuristiques de listes prenant en compte la bande passante est plus restrictive qu'une heuristique par paquet. Il en découle que les paquets sont à préférer quand de grandes quantité de données sont en jeu par rapport à la bande passante disponible. Nous avons considéré que les accès d'E/S étaient exclusifs. Cependant, en mettant en valeur des différences de performance notable selon la similarité entre les applications, nous avons montré que certaines applications doivent être exécutées ensemble. Dans le même temps, pour éviter de la famine, il est préférable de permettre plusieurs classes d'application de s'effectuer en parallèle. Les développements récents de nos travaux cherchent à déterminer comment définir ces partitions d'application.
 

Salle Ada Lovelace (Inria) (Visioconférence)