Javascript must be enabled to continue!
Understanding and Guiding the Computing Resource Management in a Runtime Stacking Context.
View through CrossRef
Comprendre et Guider la Gestion des Ressources de Calcul dans un Contexte Multi-Modèles de Programmation
Avec l’avènement des processeurs multi-coeur et many-coeur comme bloc de base des supercalculateurs, beaucoup d’applications évoluent. Au lieu de n’utiliser qu’un seul modèle de programmation parallèle à mémoire distribuée (comme MPI), elles se doivent d’ajouter des modèles à mémoire partagée (comme OpenMp). Ces deux types de modèles se retrouvent en cohabitation au sein de l’application. Cela conduit à une meilleure exploitation des communications en mémoire partagée, tout en réduisant l’empreinte mémoire globale des applications. Cependant, cette évolution a un large impact sur la pile logicielle car les développeurs mélangent généralement plusieurs modèles de programmation pour passer à l’échelle sur un grand nombre de nœuds de calcul. Un effet de bord de cette approche de la programmation est l’empilement de modèles (‘runtime stacking’) : mélanger plusieurs modèles implique que plusieurs bibliothèques fonctionnent en même temps. Gérer plusieurs bibliothèques peut mener à un grand nombre de fils d’exécution utilisant les ressources sous-jacentes de manière non optimale.Nous présentons tout d’abord une étude du mélange de modèles de programmation. Elle introduit des configurations et catégories qui décrivent comment le mélange peut apparaitre dans les applications. Nous explorons les configurations spatiales et temporelles de mélange en nous concentrant sur le placement des fils d’exécution, provenant de plusieurs bibliothèques, sur les ressources matérielles. Nous construisons cette taxonomie en nous basant sur l’analyse de l’état de l’art des modèles de programmation et de leurs mélanges.Nous proposons ensuite des algorithmes pour détecter les mauvaises utilisations des ressources de calcul lors de l’exécution d’une application mélangeant plusieurs modèles de programmation. Nous avons implémenté ces algorithmes dans un outil dynamique appelé ‘Overseer’. Cet outil surveille l’application, et produit un rapport présentant l’utilisation des ressources tout au long de l’exécution. Le but de cette analyse est de mettre en lumière la sur- ou sous-utilisation des ressources de calcul.Enfin, nous proposons un second outil appelé ‘Overmind’, dont le but est de surveiller et de gérer le placement des fils d’exécution à la volée. La topologie des ressources des calculs ainsi que le comportement de l’application sont pris en compte pour utiliser au mieux toutes les ressources à disposition. En capturant une vue globale de l’utilisation des ressources, l’Overmind adapte le placement des fils d’exécution, et vise à prendre la meilleure décision pour améliorer l’utilisation des ressources de calcul de chaque nœud du supercalculateur.Nous démontrons la pertinence de notre approche et montrons qu’avec son faible surcout, notre implémentation est capable d’améliorer les performances d’applications, même si celles-ci utilisaient les ressources de calcul de manière non optimale à l’origine.
Title: Understanding and Guiding the Computing Resource Management in a Runtime Stacking Context.
Description:
Comprendre et Guider la Gestion des Ressources de Calcul dans un Contexte Multi-Modèles de Programmation
Avec l’avènement des processeurs multi-coeur et many-coeur comme bloc de base des supercalculateurs, beaucoup d’applications évoluent.
Au lieu de n’utiliser qu’un seul modèle de programmation parallèle à mémoire distribuée (comme MPI), elles se doivent d’ajouter des modèles à mémoire partagée (comme OpenMp).
Ces deux types de modèles se retrouvent en cohabitation au sein de l’application.
Cela conduit à une meilleure exploitation des communications en mémoire partagée, tout en réduisant l’empreinte mémoire globale des applications.
Cependant, cette évolution a un large impact sur la pile logicielle car les développeurs mélangent généralement plusieurs modèles de programmation pour passer à l’échelle sur un grand nombre de nœuds de calcul.
Un effet de bord de cette approche de la programmation est l’empilement de modèles (‘runtime stacking’) : mélanger plusieurs modèles implique que plusieurs bibliothèques fonctionnent en même temps.
Gérer plusieurs bibliothèques peut mener à un grand nombre de fils d’exécution utilisant les ressources sous-jacentes de manière non optimale.
Nous présentons tout d’abord une étude du mélange de modèles de programmation.
Elle introduit des configurations et catégories qui décrivent comment le mélange peut apparaitre dans les applications.
Nous explorons les configurations spatiales et temporelles de mélange en nous concentrant sur le placement des fils d’exécution, provenant de plusieurs bibliothèques, sur les ressources matérielles.
Nous construisons cette taxonomie en nous basant sur l’analyse de l’état de l’art des modèles de programmation et de leurs mélanges.
Nous proposons ensuite des algorithmes pour détecter les mauvaises utilisations des ressources de calcul lors de l’exécution d’une application mélangeant plusieurs modèles de programmation.
Nous avons implémenté ces algorithmes dans un outil dynamique appelé ‘Overseer’.
Cet outil surveille l’application, et produit un rapport présentant l’utilisation des ressources tout au long de l’exécution.
Le but de cette analyse est de mettre en lumière la sur- ou sous-utilisation des ressources de calcul.
Enfin, nous proposons un second outil appelé ‘Overmind’, dont le but est de surveiller et de gérer le placement des fils d’exécution à la volée.
La topologie des ressources des calculs ainsi que le comportement de l’application sont pris en compte pour utiliser au mieux toutes les ressources à disposition.
En capturant une vue globale de l’utilisation des ressources, l’Overmind adapte le placement des fils d’exécution, et vise à prendre la meilleure décision pour améliorer l’utilisation des ressources de calcul de chaque nœud du supercalculateur.
Nous démontrons la pertinence de notre approche et montrons qu’avec son faible surcout, notre implémentation est capable d’améliorer les performances d’applications, même si celles-ci utilisaient les ressources de calcul de manière non optimale à l’origine.
Related Results
Programming models for mobile environments
Programming models for mobile environments
For the last decade, mobile devices have grown in popularity and became the best-selling computing devices. Despite their high capabilities for user interactions and network connec...
Ada runtime environment working group—a framework for describing Ada runtime environment
Ada runtime environment working group—a framework for describing Ada runtime environment
The concept of a runtime environment to support program execution has always been associated with application software - it has only been with programming languages like Ada that t...
An Atlas of the base inter-RNA stacks involved in bacterial translation
An Atlas of the base inter-RNA stacks involved in bacterial translation
Nucleobase-specific noncovalent interactions (i.e., inter-RNA base pairing and stacking) play a crucial role in the RNA-driven biochemical process of translation. Although the stru...
Runtime Verification on Robotics Systems
Runtime Verification on Robotics Systems
Runtime verification is a technique for generating monitors from formal specification of expected behaviors for the underlying system. It can be applied to automatically evaluate s...
Reviews DVD/Blu-ray
Reviews DVD/Blu-ray
Abstract
The Asphalt Jungle (1950) USA Director John Huston Runtime 112 minutes
Blu-ray USA, 2016 Distributed by The Criterion Collection (region A/1)...
Side Mount Package (SMP) for Ultra-High Density Memory Applications
Side Mount Package (SMP) for Ultra-High Density Memory Applications
In recent years, package stacking technology has been pursued and practiced widely in industry, mainly as perimeter array package on package (PoP) stacking configuration. However, ...
Exploiting task-based programming models for resilience
Exploiting task-based programming models for resilience
Hardware errors become more common as silicon technologies shrink and become more vulnerable, especially in memory cells, which are the most exposed to errors. Permanent and interm...
CLOUD COMPUTING - NAVIGATING THE DIGITAL SKY
CLOUD COMPUTING - NAVIGATING THE DIGITAL SKY
“Cloud Computing – Navigating the Digital Sky” is an extensive guide designed to provide a thorough understanding of cloud computing, an essential technology in today’s digital age...

