Distributed Performance Analysis Tools for Large Scale Computations
Bibliographic record
Abstract
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. 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.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.003 | 0.012 |
| Meta-epidemiology (narrow) | 0.002 | 0.001 |
| Meta-epidemiology (broad) | 0.001 | 0.001 |
| Bibliometrics | 0.002 | 0.002 |
| Science and technology studies | 0.001 | 0.001 |
| Scholarly communication | 0.004 | 0.004 |
| Open science | 0.003 | 0.002 |
| Research integrity | 0.001 | 0.003 |
| Insufficient payload (model declined to judge) | 0.019 | 0.006 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".