MétaCan
Menu
← Retour à la cohorte
Enregistrement W7054962010

Analyse de variations de performance par comparaison de traces d'exécution

2015· other· fr· W7054962010 sur OpenAlexaboutno aff

Notice bibliographique

RevuePolyPublie (École Polytechnique de Montréal) · 2015
Typeother
Languefr
DomaineEngineering
ThématiqueLaser Design and Applications
Établissements canadiensnon disponible
Organismes subventionnairesnon disponible
Mots-clésTRACE (psycholinguistics)Earth historySource codeStatistical analysis
DOInon disponible

Résumé

récupéré en direct d'OpenAlex

Je remercie d'abord mon directeur de recherche, Michel Dagenais, d'avoir cru en moi.Il a réussi à me transmettre sa passion pour Linux et m'a fait sentir à ma place au laboratoire de recherche sur les systèmes répartis ouverts et très disponibles (DORSAL).Il a aussi été très disponible tout au long de ma maîtrise.Je remercie le Conseil de recherches en sciences naturelles et en génie du Canada (CRSNG) de m'avoir accordé une bourse d'études supérieures.Je remercie Francis, Julien et Suchakra de m'avoir donné les pistes nécessaires pour aller jouer dans les entrailles du système d'exploitation Linux.J'ai aussi beaucoup aimé discuter avec eux de mes travaux et écouter leurs précieux conseils.Je remercie Simon et Mathieu, des amis sur lesquels j'ai toujours pu compter depuis le début du baccalauréat.Je remercie Etienne Bergeron de m'avoir encouragé à me dépasser tout en m'amusant.Je remercie Mathieu Desnoyers de m'avoir suggéré des pistes très intéressantes lors de la réalisation de ce projet.J'ai beaucoup aimé que tous les deux me partagent leurs innombrables connaissances.Je remercie mes parents qui m'ont encouragé dans tous les projets que j'ai entrepris dans ma vie.Je remercie mon frère Étienne qui a accepté toutes les demandes que je lui ai faites durant ce projet et avec qui je peux parler de bits.Je remercie Emmanuelle et Élisabeth d'être des sœurs que j'admire.v RÉSUMÉ La performance est un requis très important pour bon nombre d'applications.Malheureusement, plusieurs facteurs affectent cette performance : contention pour l'accès à une ressource, mauvais algorithmes de synchronisation, attente de données en provenance du disque, etc. En raison de la taille du code source de certaines applications et des multiples niveaux d'abstraction entre le code applicatif et le matériel, plusieurs développeurs ne soupçonnent pas l'existence de toutes ces sources de latence.Le traçage est une technique qui consiste à enregistrer des événements qui surviennent dans un système informatique.Un grand nombre de problèmes de performance peuvent être diagnostiqués à partir de l'information contenue dans une trace d'exécution.En raison de leur faible surcoût, les traceurs modernes peuvent être activés en continu sur des systèmes en production pour capturer des problèmes survenant rarement.Des outils spécialisés facilitent la navigation à travers le grand nombre d'événements contenus une trace d'exécution.Malheureusement, même avec ces outils, il peut être difficile de juger si le comportement observé est celui attendu sans une connaissance exhaustive du système analysé.L'objectif de ce travail de recherche est de vérifier si le diagnostic de variations de performance peut être facilité par un algorithme qui identifie automatiquement les différences entre deux groupes de traces d'exécution.L'algorithme doit mettre en évidence les latences présentes dans un groupe d'exécutions anormalement longues, mais pas dans un groupe d'exécutions normales.Un développeur peut alors tenter d'éliminer ces latences.Pour ce faire, nous introduisons d'abord deux nouveaux événements pour le traceur LTTng.L'événement cpu_stack rapporte périodiquement la pile d'appels des fils d'exécution utilisant le processeur.L'événement syscall_stack rapporte la pile d'appels des longs appels système.Ces deux événements nous permettent de déterminer si des latences présentes dans des traces d'exécution différentes ont été causées par le même code applicatif.Le traçage de l'événement syscall_stack a un surcoût moindre que celui du traçage traditionnel des appels système.Nous proposons aussi une nouvelle structure de données appelée enhanced calling context tree (ECCT) pour représenter les latences affectant le temps de complétion d'une tâche.Ces latences peuvent être au niveau du matériel, du système d'exploitation ou du code applicatif.En présence d'interactions entre plusieurs fils d'exécution, nous utilisons un algorithme de calcul du chemin critique pour inclure dans le ECCT les latences introduites par chacun de ces fils.Nous utilisons les ECCTs à la fois pour stocker des métriques de performance de façon compacte et comme entrée de notre algorithme de comparaison.vi Ensuite, nous présentons une interface graphique permettant de visualiser les différences entre des groupes d'exécution.Les groupes à comparer sont définis par l'utilisateur à l'aide de filtres.Les différences sont montrées à l'aide d'un outil de visualisation appelé flame graph différentiels ainsi que d'histogrammes.Les vues sont rafraîchies rapidement lorsque les filtres sont modifiés grâce à un algorithme de map-reduce.L'efficacité de notre solution pour détecter, diagnostiquer et corriger des problèmes de performance majeurs est démontrée grâce à quatre études de cas menées sur des logiciels libres et d'entreprises.Nous mesurons aussi le surcoût du traçage des événements requis par notre analyse sur différents types d'applications et concluons qu'il est toujours entre 0.2% et 9%.Enfin, nous démontrons que notre solution développée pour Linux peut être adaptée pour fonctionner sur les systèmes d'exploitation Windows et Mac OS X. vii

Récupéré en direct depuis OpenAlex et désinversé. Les résumés ne sont pas conservés dans cette base de données : les index inversés représentent 8,6 Go des 9,3 Go de texte de la base, et le serveur dispose de 13 Go libres.

Comment cette classification a été obtenuedéplier

Prédiction machine sur la base complète

Imitation des enseignants

Ni prévalence calibrée, ni vérité terrain. Validation humaine à venir. Le volet Gemma est une étiquette directe du modèle pour chaque travail de la base, lue sur la notice réduite au titre. Le volet Codex est un classifieur appris des 10 348 étiquettes directes de Codex et calibré sur les taux pondérés de l'échantillon; les champs sans appui suffisant ne portent aucun appel Codex. Le mode candidate est l'union des deux volets; le consensus est leur intersection. Ces sorties portent le statut machine_predicted_unvalidated et ne sont pas des étiquettes humaines.

score de la tête « metaresearch » (Codex)0,002
score de la tête « metaresearch » (Gemma)0,016
Version: metacan-v3-hybrid-931329e0061cStatut de validation: machine_predicted_unvalidated
Catégories candidatesaucune
Catégories consensuellesaucune
DomaineSignal candidat: aucune · Signal consensuel: aucune
Devis d'étudeSignal candidat: Simulation ou modélisation · Signal consensuel: aucune
GenreSignal candidat: Empirique · Signal consensuel: Empirique
Score de désaccord entre enseignants0,011
Score d'incertitude au seuil0,021

Scores du classifieur distillé par catégorie (deux têtes)

CatégorieCodexGemma
Métarecherche0,0020,016
Méta-épidémiologie (sens strict)0,0010,000
Méta-épidémiologie (sens large)0,0010,001
Bibliométrie0,0030,003
Études des sciences et des technologies0,0010,001
Communication savante0,0020,002
Science ouverte0,0010,001
Intégrité de la recherche0,0010,001
Charge utile insuffisante (le modèle a refusé de juger)0,0020,001

Scores machine (provisoires)

Les deux têtes enseignantes du modèle étudiant, lues sur ce travail. Un score ordonne la base pour la relecture; il n'affirme jamais une catégorie, et le statut de validation accompagne chaque rangée tel quel.

Scores de référence d'un modèle non mature (critères de maturité non atteints, 7 itérations). Un score ordonne; il n'affirme jamais une catégorie.

Tête enseignante Opus0,014
Tête enseignante GPT0,230
Écart entre enseignants0,216 · la distance entre les deux têtes enseignantes sur ce seul travail
Statut de validationscore_only:v0-immature-baseline · tel quel depuis la passe de notation : score_only signifie que le nombre peut ordonner les travaux, et qu'aucune étiquette de catégorie n'en découle

Classification

machine, non validée

Prédiction automatique; un appel candidat d’une seule source (Gemma direct ou Codex distillé), pas un consensus.

Les modèles n’ont appliqué aucune catégorie : rien dans la taxonomie ne correspondait à ce travail.
Devis d'étudeSimulation ou modélisation
Domainenon disponible
GenreEmpirique

Le détail, modèle par modèle et score par score, se trouve en fin de page sous « Comment cette classification a été obtenue ».

En bref

Citations0
Publié2015
Routes d'admission1
Résumé présentoui

Explorer davantage

Même revuePolyPublie (École Polytechnique de Montréal)→Même sujetLaser Design and Applications→Travaux en français237 207→