Auto-optimisation de la performance d'un calculateur par l'accélération des E/S dans le domaine du HPC

par Sophie Robert

Projet de thèse en Informatique

Sous la direction de Soraya Zertal et de Gael Goret.

Thèses en préparation à Paris Saclay , dans le cadre de École doctorale Sciences et technologies de l'information et de la communication (Orsay, Essonne ; 2015-....) , en partenariat avec LI-PaRAD - Laboratoire d'Informatique - Parallélisme Réseaux Algorithmes Distribués (laboratoire) et de Université de Versailles-Saint-Quentin-en-Yvelines (établissement de préparation de la thèse) depuis le 01-10-2018 .


  • Résumé

    Introduction Au sein de la division R&D HPC et Big Data SW du groupe Atos, précisément dans l'équipe Data Management, sont développées les solutions de stockage de données de très haute performance qui seront au cœur des calculateurs exascale de demain. Les activités de l'équipe Data Management s'intègrent dans un domaine transversal visant à poser les premières briques de processus d'automatisation menant à l'élaboration de machines intelligentes. Elles seront capables de s'adapter automatiquement aux variations de l'environnement (panne matérielle, charge de travail), afin de se maintenir dans un état de fonctionnement optimal (cycle de vie des données, efficacité énergétique, performance de calcul). L'évolution de taille et la complexité croissante des machines actuelles impliquent déjà un changement de paradigme dans leur utilisation/administration. En effet, de plus en plus, l'intervention humaine se révèle difficile au vu de la quantité d'informations impliquées dans le maintien d'un état de fonctionnement optimal. De plus, les futurs calculateurs exascale intégreront un nombre beaucoup plus élevé de nœuds de calcul, et les méthodes d'accès aux données actuelles de type systèmes de fichiers parallèles POSIX impliquant une cohérence forte des données et dont la mise à l'échelle est assez limitée, ne seront plus utilisables. Des solutions alternatives cherchant à étendre le modèle POSIX[1] ( « burst buffers » [2,3]), ou proposant d'autres modèles d'accès (stockage objet [4-6], DAOS [7]) sont déjà expérimentées. Cependant, ces solutions alternatives impliquent une mise en œuvre à la demande, avec des paramètres spécifiques adaptés au comportement des applications pour lesquelles elles seront instanciées. L'état de l'art aujourd'hui est que ce paramétrage est entièrement manuel, à la charge des utilisateurs qui n'ont que très rarement les compétences pour le définir. Pour rendre cette automatisation possible, il sera indispensable d'avoir une compréhension très fine du comportement des applications, afin d'appliquer les stratégies d'accélération IO les plus pertinentes, et participer ainsi à l'optimisation du fonctionnement du supercalculateur. Contexte Au sein du groupe Data Management d'ATOS, nous avons développé un système de monitoring IO complet appelé IO Instrumentation (IOI). Celui-ci, dédié au profilage de l'accès aux données par les applications de Calcul Haute Performance (HPC), nous permet d'enregistrer en temps réel de nombreuses métriques relatives au déroulement de l'exécution des programmes sur cluster HPC (volume IO, temps des IO, nombre de processus actifs, etc.). L'ensemble des métriques collectées donne une description du comportement dynamique des applications, ce qui constitue une base solide pour le développement de méthodes de paramétrisation automatique et pourrait être une entrée à un système générant ces paramètres à développer dans cette thèse. Les applications HPC consacrent une partie importante de leur temps d'exécution à effectuer des entrées/sorties. Les volumes de données qui sont traités représentent en eux même la cause principale : les réseaux utilisés pour échanger les données ayant une bande passante finie, les temps de lecture et d'écriture ne pourront être inférieurs à un minimum théorique. Cependant, d'autres facteurs peuvent avoir un impact significatif. Par exemple, l'exécution concurrente de deux applications peut entrainer des conflits d'accès à des ressources de stockage communes qui vont impacter les performances. La façon dont une application effectue ses entrées/sortie peut également impacter la performance de façon très importante dans le cas où elle sature des équipements de stockage en demandant le traitement d'un très grand nombre de « petites » opérations. Pour pallier ces effets, des produits accélérateurs d'IO (Fast IO Libraries, Smart Burst Buffer) sont également développés au sein du groupe Data Management d'ATOS, la principale limitation dans leur usage étant relative à leur configuration : Quel(s) accélérateur(s) choisir et comment le(s) paramétriser afin de tirer le maximum de performance de l'application ? Les recherches et développements à réaliser durant cette thèse viseront à surmonter cette limitation en proposant le meilleur choix d'accélérateur IO pour une application donnée. Une fois ce choix établi, le système devra être capable de sélectionner les meilleurs paramètres associés à une application sur la base d'une connaissance extraite de l'observation des exécutions passées. L'objectif sera de développer une méthode de paramétrisation auto-optimisée de ces outils afin d'en garantir une utilisation efficace. La méthode à développer reposera essentiellement sur une analyse prédictive des modalités d'accès aux données utilisant l'ensemble des métriques collectée par l'IO Instrumentation. Problématique Nous considérons différentes typologies de paramétrisation pour ces accélérateurs. Chacune d'entre elles présente un certain nombre d'avantages et d'inconvénients : 1-Paramétrisation statique: elle convient de manière moyenne à l'ensemble des profils d'accès des applications et se distingue par la simplicité de sa mise en œuvre. Néanmoins, sa rigidité la rend performante uniquement pour le cas particulier auquel elle est dédiée. Cette méthode ne peut donc pas couvrir de manière performante l'ensemble des profils des applications et ne peut constituer un modèle efficace à intégrer dans nos outils. 2-Paramétrisation dynamique : elle fournit la possibilité de faire varier ses paramètres via une analyse on-line, s'adaptant plus facilement à différents contextes applicatifs. Elle présente donc une grande flexibilité malgré la complexité de sa mise en œuvre, son surcoût temporel durant l'exécution qui impacte les performances de l'application à analyser, et en ressources matérielles utilisées (mémoire, CPU, ...). Ceci fait que cette méthode soit également inadaptée à une intégration dans nos outils. 3-Paramétrisation auto-adaptative : elle se base sur l'injection d'un modèle issu d'une analyse off-line, issue des résultats d'un ensemble d'exécutions similaires (dans les mêmes conditions). Cette méthode a l'avantage d'avoir moins d'impact sur l'exécution de l'application que la paramétrisation dynamique tout en couvrant un large spectre d'applications. Ce qui est impossible à réaliser avec une paramétrisation statique. Néanmoins, elle nécessite une analyse assez fine des exécutions, l'extraction des caractéristiques représentant l'application analysée et l'éventuelle extension à une classe d'applications, pour construire le modèle abstrait des profils d'E/S de cette classe. Toute l'efficacité de cette méthode réside dans la finesse de l'analyse et du degré de représentativité et la précision du modèle qui en découle. Cette précision peut être améliorée graduellement jusqu'à la convergence vers un optimum, en utilisant le mécanisme de feedback permettant d'ajuster de manière itérative le modèle de paramétrisation au fur et à mesure des exécutions répétées. Cela fait de cette méthode un très bon compromis avec d'un côté le large spectre d'applications auxquelles elle s'applique et la précision du modèle caractérisant la classe d'applications étudiées et d'un autre côté la complexité apparente de sa mise en œuvre. Du côté de l'Université de Versailles Saint-Quentin-en-Yvelines, l'équipe ARPA (Architectures Parallèles) du Laboratoire Li-PaRAD, dispose d'une expertise dans le domaine des systèmes de stockage de données et tout particulièrement dans la modélisation analytique de ces systèmes et la caractérisation des profils d'entrées/sorties : réseaux de files d'attentes, de fluides et modèles markoviens cachés. Elle mettra cette expertise à disposition pour le suivi et l'encadrement du doctorant(e) dans toutes les étapes de la réalisation du travail de thèse, y compris la diffusion des résultats (publications, dépôts de brevets, ...). L'utilisation d'une analyse prédictive avec des techniques statistiques et de modélisation analytique dans le domaine du HPC en général et celui des entrées/sorties en particulier, présente un caractère tout à fait innovant, comparé aux approches existantes purement 'engineering' telles que le burstbuffer [2], l'infinite memory (IME) [3] et le DataWrap de Cray [8]. De par l'utilisation de théories mathématiques qui ont fait leurs preuves dans divers domaines d'utilisation, le champ d'application de notre méthode dépasse également le contexte du HPC ciblé dans cette thèse. Les résultats obtenus pourront être exploités dans d'autres domaines d'utilisation moyennant un faible effort d'adaptation. Travail attendu Le doctorant aura à s'impliquer dans l'ensemble des étapes en commençant par la maîtrise des outils et techniques existants, l'analyse et la caractérisation des Entrées/Sorties des applications HPC fournies par ATOS, puis l'élaboration du ou des modèles qui représentent au mieux les comportements des applications, suivie de leur calibrage et ajustement, jusqu'au prototypage. La méthodologie de travail envisagée actuellement, après la familiarisation avec les outils existants, est :  L'évaluation quantitative de la pertinence des variables mesurées sur les systèmes réels fournis par ATOS ainsi que le calcul de leurs impacts sur le(s) paramètre(s) à prédire. Ceci peut s'effectuer par l'application de techniques statistiques comme le test du khi-deux, le V de Cramer et les coefficients de corrélation entre autres.  L'élaboration d'un modèle Logit qui relève de la régression logistique largement utilisée dans l'apprentissage automatique et/ou un modèle markovien caché qui, combiné à l'algorithme de Viterbi et celui de Baum/Welch, permettrait de prédire la paramétrisation la plus adéquate des outils afin d'accélérer la convergence des paramètres à prédire. Cette phase a pour but de bien formaliser la dépendance entre les paramètres à prédire et l'ensemble des métriques collectées.  La calibration et précision de(s) modèle(s) en comparant les valeurs prédites par ces derniers à celles mesurées pour le(s) paramètre(s) concerné(s). On peut s'appuyer sur une analyse de confusion, l'ajuster en agissant sur la paramétrisation du système. Les contraintes fortes d'ATOS sur la non-perturbation des applications en exécution seront bien sûr respectées. Cette étape est cruciale afin d'affiner la sensibilité des modèles élaborés. Une comparaison en termes de précision, de coût et d'impact sur le système observé sera également menée.  La proposition de stratégies innovantes relevant de l'analyse automatique des données et inspirées par ces modèles. S'ensuit, l'implémentation efficace des algorithmes associés dans le but à terme d'enrichir les différents produits logiciels déjà développés au sein du groupe Data Management d'ATOS. L'objectif de cette thèse est, aussi, de donner l'opportunité au futur doctorant d'aborder conjointement plusieurs domaines d'étude (mathématique, informatique, etc.) appliqués au domaine du monde HPC, tout en mettant à profit des compétences humaines et scientifiques. Cette thèse sera pour le(la) candidat(e) une manière de mettre à l'œuvre des qualités, telles que la curiosité, la créativité et la rigueur, nécessaire dans une carrière dans le milieu de la recherche. Dans la division R&D d'ATOS, la thèse s'inscrit dans un contexte de resourcement et d'innovation mais aussi de diffusion des travaux et des résultats (Articles, Brevets, etc.). Ce sujet, sera l'occasion d'établir un vecteur de connaissance entre le laboratoire d'accueil et l'entreprise, afin de mettre en place des travaux qui bénéficieront à la fois des moyens et des connaissances industriels et académiques.

  • Titre traduit

    Computing auto-optimisation by I/O acceleration in HPC context


  • Résumé

    Introduction: Within the R&D HPC and Big Data SW division of Atos, more precisely the team Data Management has developed solutions for high performance data storage which will part of the future exascale computers. These works aim to propose building blocks for intelligent machines, with auto-adaptive capabilities, considering their environment variations (failure, peack of workload, …) to provide and maintain an optimal execution in term of lifespan, energy consumption and computing performance. The continuous increase of size and complexity of computing systems/clusters leads to the apparition of new paradigms with new utilisation and management strategies. In fact, the huge amount of data to be managed to ensure an optimal execution, cannot be achieved manually. In addition, the important number of nodes using POSIX parallel file system for data access in future exascale computers, with a strong data coherency and limited scalability, are not appropriate and cannot be used any more. New extentions of the POSIX model [1] ( « burst buffers » [2,3]), or other access models (object storage [4-6], DAOS [7]) were proposed. However, these solutions need to set up parameters specifically for the target applications and this is a complex task to let to the user. To make it autonomous, it is necessary to finely understand the behaviour of these applications in order to apply the most appropriate IO acceleration strategy as part of the optimisation of the whole supercomputer. Context: Within the Data Management group of ATOS, we developed an IO monitoring system called IO instrumentation (IOI) dedicated to data access profiling in the HPC environment. It is used to collect many metrics during the applications execution (IO volume, IO time, number of active processes ...etc). All these collected metrics give a description of the dynamic behaviour of the target applications and compose a solid background to develop new methods of dynamic parameterisation. It provides also an input to a system capable of generating these parameters which we aim to achieve in this thesis. HPC applications execute an important amount of I/O operations. In addition, networks to exchange these data have a limited bandwidth and the read and write latencies have a theoretical minimum values. However, other factors can have a significant impact, as a concurrent execution leading to a resources conflict or storage devices saturation by an important number of small operations. To overcome these problems, some I/O accelerating products (Fast IO Libraries, Smart Burst Buffer) are also developed by the ATOS Data Management group and the principal limitation of their usage is their relatively complex parameterisation: which accelerator to choose, with which parameters to launch it to get the most of the storage system performance for the target application? In this thesis, we aim to surpass this limitation by proposing the best choice of the IO accelerator for a given application. Once this choice established, the system should be able to select the best parameters associated to an application based on the knowledge extracted from the observations of previous executions. The goal will be the development of an auto-optimised parametrisation method for these tools to ensure an efficient use. This method will rely on a predictive analysis of the data access strategies and the collected metrics by the IO instrumentation. Research problem: We consider different topologies of parameterisation of these accelerators: 1- Static parametrisation: it is suitable in average for all applications profiles. It is simple to use but it lacks in flexibility and is suitable only for the case it was dedicated to. It cannot be an efficient model to integrate to our tools. 2- Dynamic parametrisation: it allows the variation of its parameters via an on-line analysis to an easier adaptation to different applications areas. It provides then more flexibility despite the complex implementation, the temporal overhead during the execution which has a negative impact on the performance of the analysed application and the used physical resources (memory, CPU, ….). Thus, this method is inappropriate to integrate to our tools 3- Auto-adaptive parametrisation: it is based on the injection of the model derived from an off-line analysis using the results of previous similar executions (in the same conditions). Thus, it has a negligible impact on the application execution, comparing to the dynamic method and considering a larger domain of applications which is also impossible with a static method. Nevertheless, it needs a very fine analysis of the previous executions and the extraction of the most representative characteristics of the application to construct the abstract model of the I/O profiles. All the efficiency of this method resides in the fine analysis, the representativeness degree and the accuracy of the model. This accuracy can be enhanced gradually till the convergence towards the optimum using a feedback mechanism to readjust in an iterative manner with the repetitive executions. Consequently, this method is a good compromise, addressing a large panel of applications with accuracy on one hand and the aparent complexity of its implementation on the other hand. On the academic side, the university of Versailles Saint-Quentin-en-Yvelines, and the ARPA (Parallel Architecture) group of the Li-PaRAD laboratory, has a serious expertise in data storage systems, particularly in analytical modelling and I/O profiles characterisation: queueing models, Fluid models and Hidden Markov models. They will use this expertise to supervise the PhD candidate at all the thesis realization steps, including the dissemination of the results (conferences, journals, patents,....). Using a predictive analysis with statistical techniques and analytical modelling in the HPC context in general and in Inputs/Outputs in particular, is novel comparing to purely engineering existing approaches as burstbuffer [2], infinite memory (IME) [3] and DataWrap of Cray [8]. Using mathematical theory which had proven its efficiency in many areas, the application of our method is beyond the HPC context. The obtained results can be exploited in other domains with a small adaptation effort. Expected work: The PhD candidate has to be involved in all the steps, going from mastering the existing tools and techniques, the characterisation and the analysis of the I/O of HPC applications provided by ATOS, then the elaboration of the model which represents the most the applications behaviour, followed by the calibration then the prototyping. The methodology to follow after getting familiar with the existing tools is: 1. The quantitative evaluation of the pertinence of the collected metrics 2. The model derivation to formalise the dependences between the metrics to expect and the collected measures 3. Calibration and accuracy of the model. 4. Proposition of strategies belonging to the automatic analysis to enrich the I/O acceleration tools.