Characterization and monitoring of I/O for HPC workloads
Alexis Bandet · 2024
Caractérisation des I/O des applications HPC pour l’ordonnancement L’informatique haute performance est une composante essentielle du flux de travail scientifique d’aujourd’hui. La conception d’aéronefs, la simulation météorologique, la médecine ou la recherche en astronomie ne sont que quelques-uns de ses nombreux domaines d’application. Mais l’émergence récente d’une convergence entre le HPC et le Big Data exerce une forte pression sur les infrastructures d’entrée/sortie (E/S). Contrairement aux ressources de calcul, qui sont attribuées en accès exclusif à une application, les ressources d’E/S sont généralement partagées par toutes les applications, ce qui peut entraîner des interférences dans les performances E/S des unes et des autres. La nature non déterministe de ces ralentissements pose un problème pour la gestion des ressources. De plus, ralentir les E/S signifie souvent que les ressources de calculs, coûteuses et énergivores, restent inactives pendant que les applications attendent que les opérations de données se terminent. Pour atténuer ce problème, il est nécessaire d’appliquer un ordonnancement des applications sur les ressources d’E/S. Dans cette thèse, nous nous concentrons sur le profilage et la caractérisation des E/S des applications afin de fournir au gestionnaire de ressources les informations nécessaires pour prendre de bonnes décisions. Nous visons à identifier les informations minimales dont nous avons besoin sur une application. Les outils existants de surveillance des E/S, tels que Darshan et Tau, n’ont pas été conçus pour relever ces nouveaux défis. Ils fournissent beaucoup plus d’informations que nécessaire, créant une quantité importante mais, pour notre problème, inutile de données. Dans cette thèse, nous avons d’abord travaillé à identifier les connaissances minimales requises sur les applications pour planifier les ressources d’E/S distribuées, telles que les OST et les nœuds d’E/S. Pour cela, nous avons conçu des heuristiques de planification simples, mais efficaces, nécessitant différents niveaux de connaissances sur les applications. Nous avons démontré que même des informations de haut niveau telles que le nombre de ressources qui maximisent le débit d’E/S suffisent pour observer des améliorations grâce à la planification des E/S. Nous nous sommes ensuite concentrés sur la proposition d’une méthode pour obtenir ces informations. Nous avons utilisé certaines techniques d’apprentissage automatique pour trouver le nombre de ressource qui maximise la bande passante d’E/S d’une application. Comme entrée du modèle, nous avons utilisé des paramètres d’applications E/S tels que la taille des requêtes, le nombre de processus effectuant des opérations d’E/S, et le modèle d’accès. De plus, nous avons utilisé l’élagage de caractéristiques pour mieux comprendre le rôle de chaque paramètre dans notre prédiction. Nous avons conclu que toutes les caractéristiques restent importantes pour une bonne prédiction, mais avec des ordres de grandeur différents. Enfin, nous avons travaillé sur le profilage du comportement temporel des applications HPC, qui sont connues pour alterner entre des phases de calcul et des phases d’E/S. Cette périodicité est une composante importante, car elle crée une pression temporelle mais énorme sur les systèmes d’E/S, appelée burst. Des travaux connexes ont montré que des informations sur la fréquence des phases d’E/S peuvent être utilisées pour une planification efficace des accès au système de fichiers partagé. À cette fin, nous avons développé FTIO, un outil qui tire parti de l’algorithme de transformation de Fourier rapide pour prédire la périodicité des applications. En plus de la fréquence des phases d’E/S, nous avons proposé des métriques pour vérifier si l’application est périodique, ce qui permet de vérifier si la fréquence obtenue est correcte. Prendre en compte le comportement temporel est une partie importante des contributions de cette thèse, car il est courant que les applications changent de comportement au cours de leur exécution.