<  Back to the Polytechnique Montréal portal

Distributed Performance Analysis Tools for Large Scale Computations

Pierre-Frédérick Denys

Ph.D. thesis (2023)

[img] Restricted to: Repository staff only until 27 September 2024
Terms of Use: All rights reserved
Request a copy
Show abstract
Hide abstract

Abstract

High-performance, container-based computing systems are increasingly present and needed in many areas, such as weather forecasting, image processing, DNA sequencing, and many others. The computing power required for these applications has led to the transition from monolithic to distributed systems. The inherent increase in the complexity of these systems is accompanied by more frequent performance problems whose cause is more difficult to determine. This research aims to introduce more efficient analysis tools for analyzing very large distributed systems. The starting hypothesis is that analyzing system events make it possible to find the cause of slowdowns and performance problems. Low-level OS kernel events are recorded in traces during application operation. Or, like an airplane flight recorder, it can be recorded some time before and after the problem appears. Once these traces are collected, analysis tools are needed to extract useful information and produce views that are suitable for what the user is looking for. The first line of research concerned the performance analysis of systems based on containers and e-mail middleware. An in-depth study of the communication systems currently in use and the different deployment architectures identified common performance issues and methods for identifying them. Two new methods have been proposed, the first based on the instrumentation of the communication system and the second less intrusive based on the observation of the events of the container host. An evaluation of the currently available tracing tools was then conducted. Among the different issues identified, one of the main concerns is scalability. Even if the collection of traces is possible on a very large number of nodes, these tools are not suitable for analyzing many trace files and even less on remote nodes. There are, therefore, challenges regarding the size of the traces collected, the number of trace files, the variety of available tracepoints, and the number of nodes. The following two lines of research focused on improving a particular trace analysis method, critical path analysis. Critical Path Analysis is used to determine the origin of bottlenecks through the analysis of the trace system execution graph. These wait times are often caused by network calls to other nodes in the cluster. Therefore, we often have to combine several trace files from several different nodes to understand the origin of the blocking. Given the size of the trace files, it is impossible and inefficient to transfer them to a single analysis node. The calculations of the analysis process must therefore be divided between the various plotted nodes. As analysis tools become distributed systems themselves, their performance is also an issue. This research work proposed an algorithm for calculating the distributed critical path in the second contribution. Two architectures optimized for the distributed trace analysis architecture have been proposed. The third contribution made it possible to improve its performance by pre-processing trace files on remote nodes. This is based on trace indexing files and avoids unnecessary communications between analysis nodes when calculating the critical path. Particular attention has been paid to minimizing the extra cost of the developed methods. All the tools and algorithms developed are publicly available in repositories identified in the articles making up this thesis.

Résumé

Les sytèmes de calcul de haute performance et basés sur les conteneurs sont de plus en plus présents et nécessaires dans de nombreux domaines tels que les prévisions métérologiques, le traitement d’images, le séquençage de l’ADN et bien d’autres. La puissance de calcul nécessaire à ces applications a entraîné la transition de systèmes monolithique à des systèmes distribués. L’augmentation inhérente de la complexité de ces systèmes s’accompagne de problèmes de performances plus fréquents et dont la cause est plus difficile à déterminer. L’objectif de ce travail de recherche est d’introduire des outils d’analyse plus performants pour l’analyse des très grands systèmes distribués. L’hypothèse de départ est qu’il est possible de trouver la cause des ralentissements et des problèmes de performance par l’analyse des évènements système. Les évènements bas niveau du noyau du système d’exploitation sont enregistrés dans des traces pendant le fonctionnent de l’application. Ou encore, à la manière d’une boîte noire d’avion, il peuvent être enregistrés quelques temps avant et après l’apparition du problème. Une fois que ces traces sont collectées, des outils d’analyse sont nécessaires pour en extraire les informations utiles et produire des vues adaptées à ce que recherche l’utilisateur. Un premier axe de recherche a concerné l’analyse de performance des systèmes basés sur les containeurs et les intergiciels de messagerie. Une étude approfondie des systèmes de communication actuellement utilisés, ainsi que des différentes architectures de déploiement, a permis d’identifier les problèmes de performance courants et des méthodes pour les identifier. Deux nouvelles méthodes ont étés proposées, la première basée sur l’instrumentation du système de communication et la seconde moins intrusive basée sur l’observation des évènements du noyau de l’hôte des conteneurs. Ensuite, une évaluation des outils de traçage présentement disponibles a été effectuée. Parmi les différent enjeux identifiés, l’un des principaux concerne l’extensibilité. Même si la collecte des traces est possible sur un très grand nombre de noeuds, ces outils sont peu adaptés à l’analyse de nombreux fichiers de trace, et encore moins sur des noeuds distants. Il y a donc des enjeux au niveau de la taille des traces collectées, du nombre de fichiers de traces, de la variété de points de traces disponibles et du nombres de noeuds. Les deux axes de recherche suivants se sont concentrés sur l’amélioration d’une méthode d’analyse de traces en particulier, l’analyse du chemin critique. L’analyse du chemin critique permet de déterminer l’origine des goulots d’étranglements par l’analyse du graphe d’exécution du système tracé. Ces périodes d’attente sont souvent causées par des appels réseaux à d’autres noeuds de la grappe. On doit donc souvent combiner plusieurs fichiers de trace issus de plusieurs noeuds différents afin de réellement comprendre l’origine du blocage. Compte tenu de la taille des fichiers de trace, il est impossible et inefficace de les trasnférer sur un noeud d’analyse unique. On doit donc répartir les calculs du processus d’analyse entre les différents noeuds tracés. Les outils d’analyse devenant eux-même des systèmes distribués, leur performance est également un enjeu. Ce travail de recherche a consisté à proposer un algorithme de calcul du chemin critique distribué dans la seconde contribution. Deux architecture optimisées pour l’architecture d’analyse répartie des traces ont étés proposées. La troisième contribution a permis d’améliorer les performances de celui-ci en effectuant un pré-traitement des fichiers de traces sur les noeuds distants. Celle-ci est basée sur des fichiers d’indexation de traces et permet d’éviter les communications inutiles entre les noeuds d’analyse lors du calcul du chemin critique. Une attention particulière a été accordée à la minimisation du surcoût des méthodes développées. Tout les outils et algorithme développés sont publiquement disponibles dans des dépôts identifiés dans les articles composants cette thèse.

Department: Department of Computer Engineering and Software Engineering
Program: Génie informatique
Academic/Research Directors: Michel Dagenais
PolyPublie URL: https://publications.polymtl.ca/53372/
Institution: Polytechnique Montréal
Date Deposited: 27 Sep 2023 14:22
Last Modified: 13 Apr 2024 05:58
Cite in APA 7: Denys, P.-F. (2023). Distributed Performance Analysis Tools for Large Scale Computations [Ph.D. thesis, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/53372/

Statistics

Total downloads

Downloads per month in the last year

Origin of downloads

Repository Staff Only

View Item View Item