31 research outputs found

    Contribution à l'amélioration des méthodes d'optimisation de la gestion de la mémoire dans le cadre du Calcul Haute Performance

    Get PDF
    Current supercomputer architectures are subject to memory related issues. For instance we can observe slowdowns induced by memory management mecanisms and their implementation. In this context, we focus on the management of large memory segments for multi-core and NUMA supercomputers similar to Tera 100 and Curie. We discuss our work in three parts.We first study several paging policies (page coloring, huge pages...) from multiple operating systems. We demonstrate an interference between those policies and layout decisions taken by userspace allocators. Such interactions can significantly reduce cache efficiency depending on the application, particularly on multi-core architectures. This study extends existing works by studying interactions between the operating system, the allocator and caches.Then, we discuss performance issues when large memory segments are allocated. To do so, we consider the interaction between the OS and userspace allocators. We show that we can significantly improve some application performances (up to 50%) by controling the memory exchange rate with the OS and by taking care of memory topologies.We finally study page fault extensibility in current Linux kernel implementation. We obsere a large impact due to page zeroing which is a security requirement. We propose an improvement on memory allocation semantic aimed at avoiding page zeroing. It shows a new interest for hugepages to improve paging scalability without changing too much kernel algorithms.L’évolution des architectures des calculateurs actuels est telle que la mémoire devient un problème majeur pour les performances. L’étude décrite dans ce document montre qu’il est déjà possible d’observer des pertes importantes imputables aux mécanismes de gestion de cette dernière. Dans ce contexte, nous nous sommes intéressés aux problèmes de gestion des gros segments mémoire sur les supercalculateurs multicoeurs NUMA de type Tera 100 et Curie. Notre travail est détaillé ici en suivant trois axes principaux. Nous analysons dans un premier temps les politiques de pagination de différents systèmes d’exploitation (coloration de pages, grosses pages...). Nous mettons ainsi en évidence l’existence d’interférences néfastes entre ces politiques et les décisions de placement de l’allocateur en espace utilisateur. Nous complétons donc les études cache/allocateur et cache/pagination par une analyse de l’interaction cumulée de ces composants. Nous abordons ensuite la problématique des performances d’allocation des grands segments mémoire en considérant les échanges entre le système et l’allocateur. Nous montrons ici qu’il est possible d’obtenir des gains significatifs (de l’ordre de 50% sur une grosse application) enlimitant ces échanges et en structurant l’allocateur pour un support explicite des architectures NUMA. La description de nos travaux s’achève sur une étude des problèmes d’extensibilité observés au niveau des fautes de pages du noyau Linux. Nous avons ainsi proposé une extension de la sémantique d’allocation afin d’éliminer la nécessité d’effectuer les coûteux effacements mémoire des pages au niveau système

    Placement d'applications parallèles en fonction de l'affinité et de la topologie

    Get PDF
    Computer simulation is one of the pillars of Sciences and industry. Climate simulation,cosmology, or heart modeling are all areas in which computing power needs are constantlygrowing. Thus, how to scale these applications ? Parallelization and massively parallel supercomputersare the only ways to do achieve. Nevertheless, there is a price to pay consideringthe hardware topologies incessantly complex, both in terms of network and memoryhierarchy. The issue of data locality becomes central : how to reduce the distance betweena processing entity and data to which it needs to access ? Application placement is one ofthe levers to address this problem. In this thesis, we present the TreeMatch algorithmand its application for static mapping, that is to say at the lauchtime of the application,and the dynamic placement. For this second approach, we propose the awareness of datalocality within a load balancing algorithm. The different approaches discussed are validatedby experiments both on benchmarking codes and on real applications.La simulation numérique est un des piliers des Sciences et de l’industrie. La simulationmétéorologique, la cosmologie ou encore la modélisation du coeur humain sont autantde domaines dont les besoins en puissance de calcul sont sans cesse croissants. Dès lors,comment passer ces applications à l’échelle ? La parallélisation et les supercalculateurs massivementparallèles sont les seuls moyens d’y parvenir. Néanmoins, il y a un prix à payercompte tenu des topologies matérielles de plus en plus complexes, tant en terme de réseauque de hiérarchie mémoire. La question de la localité des données devient ainsi centrale :comment réduire la distance entre une entité logicielle et les données auxquelles elle doitaccéder ? Le placement d’applications est un des leviers permettant de traiter ce problème.Dans cette thèse, nous présentons l’algorithme de placement TreeMatch et ses applicationsdans le cadre du placement statique, c’est-à-dire au lancement de l’application, et duplacement dynamique. Pour cette seconde approche, nous proposons la prise en comptede la localité des données dans le cadre d’un algorithme d’équilibrage de charge. Les différentesapproches abordées sont validées par des expériences réalisées tant sur des codesd’évaluation de performances que sur des applications réelles

    Contribution à l'élaboration d'environnements de programmation dédiés au calcul scientifique hautes performances

    Get PDF
    Dans le cadre du calcul scientifique intensif, la quête des hautes performances se heurte actuellement à la complexité croissante des architectures des machines parallèles. Ces dernières exhibent en particulier une hiérarchie importante des unités de calcul et des mémoires, ce qui complique énormément la conception des applications parallèles. Cette thèse propose un support d’exécution permettant de programmer efficacement les architectures de type grappes de machines multiprocesseurs, en proposant un modèle de programmation centré sur les opérations collectives de communication et de synchronisation et sur l’équilibrage de charge. L’interface de programmation, nommée MPC, fournit des paradigmes de haut niveau qui sont implémentés demanière optimisée en fonction de l’architecture sous-jacente. L’environnement est opérationnel sur la plate-forme de calcul du CEA/ DAM (TERANOVA) et les évaluations valident la pertinence de l’approche choisie.In the field of intensive scientific computing, the quest for performance has to face the increasing complexity of parallel architectures. Nowadays, thesemachines exhibit a deepmemory hierarchy which complicates the design of efficient parallel applications. This thesis proposes a programming environment allowing to design efficient parallel programs on top of clusters of multiprocessors. It features a programming model centered around collective communications and synchronizations, and provides load balancing facilities. The programming interface, named MPC, provides high level paradigms which are optimized according to the underlying architecture. The environment is fully functional and used within the CEA/DAM(TERANOVA) computing center. The evaluations presented in this document confirm the relevance of our approach

    Une nouvelle stratégie de glissement de données pour les caches élastiques dans les architectures manycoeurs.

    Get PDF
    La contribution de ce rapport propose une solution à la limitation du mécanismes de cache élastique dans un voisinage stressé. En effet, le mécanisme de glissement de données proposée consiste à diffuser les données de proche en proche sur un voisinage plus élargi. Toutes les données locales issues d'un nœud stressé sont stockées chez son voisinage direct. Les voisins sollicités font de même pour leurs données locales tout en les gardant dans leurs voisinages respectifs. Cette technique permet de maintenir les données locales les plus utilisées à 1 pas proche de leur nœud d'origine, au lieu de les éjecter hors puce. Ce qui revient à réduire le coût d'accès à ces données, mais aussi le nombre de défauts de cache. En plus, du principe de glissement, notre contribution repose sur deux principaux mécanismes : la technique du Best Neighbor pour le choix du voisin destinataire, et le protocole de remplacement par priorité pour désigner le bloc à transférer au voisinage. Une première étude analytique montre une amélioration importante du trafic sur puce. Une réduction des accès au Home Node a également été constatée. D'autres perspectives sont envisagées pour évaluer le gain en latence et coût de consommation

    Optimisation des caches de fichiers dans les environnements virtualisés

    Get PDF
    Les besoins en ressources de calcul sont en forte augmentation depuis plusieurs décennies, que ce soit pour des applications du domaine des réseaux sociaux, du calcul haute performance, ou du big data. Les entreprises se tournent alors vers des solutions d'externalisation de leurs services informatiques comme le Cloud Computing. Le Cloud Computing permet une mutalisation des ressources informatiques dans un datacenter et repose généralement sur la virtualisation. Cette dernière permet de décomposer une machine physique, appelée hôte, en plusieurs machines virtuelles (VM) invitées. La virtualisation engendre de nouveaux défis dans la conception des systèmes d'exploitation, en particulier pour la gestion de la mémoire. La mémoire est souvent utilisée pour accélérer les coûteux accès aux disques, en conservant ou préchargeant les données du disque dans le cache fichiers. Seulement la mémoire est une ressource limitée et limitante pour les environnements virtualisés, affectant ainsi les performances des applications utilisateurs. Il est alors nécessaire d'optimiser l'utilisation du cache de fichiers dans ces environnements. Dans cette thèse, nous proposons deux approches orthogonales pour améliorer les performances des applications à l'aide d'une meilleure utilisation du cache fichiers. Dans les environnements virtualisés, hôte et invités exécutent chacun leur propre système d'exploitation (OS) et ont donc chacun un cache de fichiers. Lors de la lecture d'un fichier, les données se retrouvent présentes dans les deux caches. Seulement, les deux OS exploitent la même mémoire physique. On parle de duplication des pages du cache. La première contribution vise à pallier ce problème avec Cacol, une politique d'éviction de cache s'exécutant dans l'hôte et non intrusive vis-à-vis de la VM. Cacol évite ces doublons de pages réduisant ainsi l'utilisation de la mémoire d'une machine physique. La seconde approche est d'étendre le cache fichiers des VM en exploitant de la mémoire disponible sur d'autres machines du datacenter. Cette seconde contribution, appelée Infinicache, s'appuie sur Infiniband, un réseau RDMA à haute vitesse, et exploite sa capacité à lire et à écrire sur de la mémoire à distance. Directement implémenté dans le cache invité, Infinicache stocke les pages évincées de son cache sur de la mémoire à distance. Les futurs accès à ces pages sont alors plus rapides que des accès aux disques de stockage, améliorant par conséquent les performances des applications. De plus, le taux d'utilisation de la mémoire à l'échelle du datacenter est augmenté, réduisant le gaspillage de manière globale

    Conception d'un micro-réseau intégré NOC tolérant les fautes multiples statiques et dynamiques

    Get PDF
    The quest for higher-performance and low-power consumption has driven the microelectronics' industry race towards aggressive technology scaling and multicore chip designs. In this many-core era, the Network-on-chip (NoCs) becomes the most promising solution for on-chip communication because of its performance scaling with the number of IPs integrated in the chip.Fault tolerance becomes mandatory as the CMOS technology continues shrinking down. The yield and the reliability are more and more affected by factors such as manufacturing defects, process variations, environment variations, cosmic radiations, and so on. As a result, the designs should be able to provide full functionality (e.g. critical systems), or at least allow degraded mode in a context of high failure rates. To accomplish this, the systems should be able to adapt to manufacturing and runtime failures.In this thesis, some techniques are proposed to improve the fault tolerance ability of NoC based circuits working in harsh environments. As previous works allow the handling of one type of fault at a time, we propose here a solution where different kinds of faults can be tolerated concurrently.Considering constraints such as area and power consumption, a fault tolerant adaptive routing algorithm was proposed, which can cope with transient, intermittent and permanent faults. Combined with some existing techniques, like flit retransmission and packet fragmentation, this approach allows tolerating numerous static and dynamic faults. Simulations results show that the proposed solution allows a high packet delivery success rate: for a 16x16 2D Mesh NoC, 97.68% in the presence of 384 simultaneous link faults, and 93.40% with the presence of 103 simultaneous router faults. This success rate is even higher when this algorithm is extended to NoCs with Tore topology. Another contribution of this thesis is the inclusion of a congestion management function in the proposed routing algorithm. For this purpose, we introduce a novel metric of congestion measurement named Flit Remain. The experimental results show that using this new congestion metric allows a reduction of the average latency of the Network on Chip from 2.5% to 16.1% when compared to the existing metrics.The combination of static and dynamic fault tolerant and adaptive routing and the congestion management offers a solution, which allows designing a NoC highly resilient.Les progrès dans les technologies à base de semi-conducteurs et la demande croissante de puissance de calcul poussent vers une intégration dans une même puce de plus en plus de processeurs intégrés. Par conséquent les réseaux sur puce remplacent progressivement les bus de communication, ceux-ci offrant plus de débit et permettant une mise à l'échelle simplifiée. Parallèlement, la réduction de la finesse de gravure entraine une augmentation de la sensibilité des circuits au processus de fabrication et à son environnement d'utilisation. Les défauts de fabrication et le taux de défaillances pendant la durée de vie du circuit augmentent lorsque l'on passe d'une technologie à une autre. Intégrer des techniques de tolérance aux fautes dans un circuit devient indispensable, en particulier pour les circuits évoluant dans un environnement très sensible (aérospatial, automobile, santé, ...). Nous présentons dans ce travail de thèse, des techniques permettant d'améliorer la tolérance aux fautes des micro-réseaux intégrés dans des circuits évoluant dans un environnement difficile. Le NoC doit ainsi être capable de s'affranchir de la présence de nombreuses fautes. Les travaux publiés jusqu'ici proposaient des solutions pour un seul type de faute. En considérant les contraintes de surface et de consommation du domaine de l'embarqué, nous avons proposé un algorithme de routage adaptatif tolérant à la fois les fautes intermittentes, transitoires et permanentes. En combinant et adaptant des techniques existantes de retransmission de flits, de fragmentation et de regroupement de paquet, notre approche permet de s'affranchir de nombreuses fautes statiques et dynamiques. Les très nombreuses simulations réalisées ont permis de montrer entre autre que, l'algorithme proposé permet d'atteindre un taux de livraison de paquets de 97,68% pour un NoC 16x16 en maille 2D en présence de 384 liens défectueux simultanés, et 93,40% lorsque 103 routeurs sont défaillants. Nous avons étendu l'algorithme aux topologies de type tore avec des résultats bien meilleurs.Une autre originalité de cette thèse est que nous avons inclus dans cet algorithme une fonction de gestion de la congestion. Pour cela nous avons défini une nouvelle métrique de mesure de la congestion (Flit Remain) plus pertinente que les métriques utilisées et publiées jusqu'ici. Les expériences ont montré que l'utilisation de cette métrique permet de réduire la latence (au niveau du pic de saturation) de 2,5 % à 16,1 %, selon le type de trafic généré, par rapport à la plus efficace des métriques existante. La combinaison du routage adaptatif tolérant les fautes statiques et dynamiques et la gestion de la congestion offrent une solution qui permet d'avoir un NoC et par extension un circuit beaucoup plus résilient

    Traçage et profilage de systèmes hétérogènes

    Get PDF
    RÉSUMÉ : Les systèmes hétérogènes sont de plus en plus présents dans tous les ordinateurs. En effet, de nombreuses tâches nécessitent l’utilisation de coprocesseurs spécialisés. Ces coprocesseurs ont permis des gains de performance très importants qui ont mené à des découvertes scientifiques, notamment l’apprentissage profond qui n’est réapparu qu’avec l’arrivée de la programmation multiusage des processeurs graphiques. Ces coprocesseurs sont de plus en plus complexes. La collaboration et la cohabitation dans un même système de ces puces mènent à des comportements qui ne peuvent pas être prédits avec l’utilisation d’analyse statique. De plus, l’utilisation de systèmes parallèles qui possèdent des milliers de fils d’exécution, et de modèles de programmation spécialisés, rend la compréhension de tels systèmes très difficile. Ces problèmes de compréhension rendent non seulement la programmation plus lente, plus couteuse, mais empêchent aussi le diagnostic de problèmes de performance.----------ABSTRACT : Heterogeneous systems are becoming increasingly relevant and important with the emergence of powerful specialized coprocessors. Because of the nature of certain problems, like graphics display, deep learning and physics simulation, these devices have become a necessity. The power derived from their highly parallel or very specialized architecture is essential to meet the demands of these problems. Because these use cases are common on everyday devices like cellphones and computers, highly parallel coprocessors are added to these devices and collaborate with standard CPUs. The cooperation between these different coprocessors makes the system very difficult to analyze and understand. The highly parallel workload and specialized programming models make programming applications very difficult. Troubleshooting performance issues is even more complex. Since these systems communicate through many layers, the abstractions hide many performance defects

    Un protocole de communication pour applications transactionnelles distribuées

    Full text link
    Mémoire numérisé par la Direction des bibliothèques de l'Université de Montréal

    Une approche multi-physiques et multi-échelles pour l'amélioration de l'efficacité de la modélisation et de la simulation des disjoncteurs haute-tension

    Get PDF
    RÉSUMÉ La conception des disjoncteurs haute-tension est une tâche complexe et difficile en raison des écoulements internes compressibles supersoniques à haute température et instationnaires, des forts champs électriques, magnétiques et radiatifs. L’arc électrique créé lors de la séparation des contacts électriques en est la cause principale. Il s’apparente à un plasma porté à des températures qui avoisinent les 30 000 K et qui provoque la sublimation des matériaux à sa proximité. Devant la complexité de ces phénomènes et pour pouvoir en tirer des critères de design, les outils de simulations numériques sont indispensables pour répondre aux besoins des ingénieurs. Cependant, la modélisation et la simulation numérique de ces phénomènes multi-physiques, fortement non-linéaires, comportent de nombreux défis de natures multidisciplinaires. En effet, les aspects concernant : la physique, les méthodes numériques, la modélisation géométrique et le calcul haute-performance sont fortement entremêlés. La contrainte du temps de calcul, qui peut s’échelonner sur plusieurs semaines, est un frein supplémentaire majeur lors du développement de l’appareillage de coupure des circuits électriques haute-tension. Par conséquent, l’efficacité de la modélisation et de la simulation des disjoncteurs haute-tension dépend d’une approche multi-physiques et multi-échelles dans la conception des outils scientifiques. Dans un partenariat entre l’École Polytechnique de Montréal et la société Alstom (désormais intégrée à General Electric), vieux de plus de 30 ans, l’outil scientifique MC3 a été développé et enrichi par de nouveaux modèles au fil du temps afin de répondre aux besoins de simulation. En revanche, il était nécessaire de le moderniser : son architecture n’était pas adaptée au contexte multi-physiques, les algorithmes n’étaient pas adaptés aux architectures des matériels informatiques modernes, les performances en temps de calcul n’étaient pas maximisées et les simulations étaient restreintes à des calculs 2D axisymétriques. Dans un but de modernisation de MC3 et d’amélioration de son efficacité du point de vue des performances et de la fidélité des résultats de calcul, quatre axes de recherche ont été poursuivis consécutivement. En premier lieu, une révision des modèles a été proposée pour s’assurer de leur pertinence. Une mise à jour mineure du schéma numérique utilisé pour la résolution de la mécanique des fluides a été effectuée. Les autres modèles étaient à jour vis-à-vis de l’état de l’art. Cela a constitué des fondations stables et solides pour supporter la suite des étapes de modernisation. En second lieu, les performances en vitesse d’exécution avaient besoin d’être améliorées, une analyse approfondie de l’outil de calcul existant a donc été réalisée.----------ABSTRACT High-voltage circuit breaker design is a complex and challenging task, because of several factors including the dynamics of fluid flow (unsteady supersonic compressible internal fluid flow at high temperature) and the the strong coupled electric, magnetic and radiative fields. These phenomena are caused by the electric arc created by the separation of the electrodes. The arc is considered as a plasma at a temperature approaching 30,000 K and creating wall sublimation of the boundary materials. Facing the complexity of these phenomena, numerical simulation tools are indispensable to comply with engineering requirements and to obtain design criteria. However, modelling and numerical simulation of these multiphysics phenomena, which are highly non-linear, constitute multidisciplinary challenges. Indeed, physics, numerical analysis, geometric modelling and high performance computing are strongly interrelated. Calculation times can take several weeks, representing an additional obstacle to the development of high-voltage circuit breakers. Consequently, the efficiency of the modeling and the numerical simulation of high-voltage circuit breakers depends on a multiphysics and multiscale approach while designing scientific tools. As a result of a long term partnership, over 30 years, between Alstom company (now part of General Electric) and Ecole Polytechnique de Montréal, the scientific tool MC3 has been developed and enriched with new models, following the simulation requirements. During the task of modernizing MC3, it was found that the software architecture was not well adapted to the multiphysics context, that the algorithms were not suitable to modern computing hardware architecture, and that performance in terms of the calculation runtime were not maximized. In addition, simulations were limited to 2D axisymmetric cases. The research aims to address those issues to improve its efficiency from performance and result fidelity perspectives, and this has led to four research axes. First, a model review has been conducted to confirm the relevance of each physical model. A minor update for the numerical scheme used to solve fluid dynamics has been performed. The other models were state of the art. That step constituted robust and stable foundations to support the consecutive steps of code modernization. Secondly, performance in terms of the calculation runtime needed to be drastically improved. This has led to an in-depth profiling of the actual tool. Code profiling and numerical analysis have permited to steer modification choices which have been carried out to speedup the simulation for all the physics, independently

    Performance et qualité de service de l'ordonnanceur dans un environnement virtualisé

    Get PDF
    Confrontées à l'augmentation des coûts de mise en place et de maintenance des systèmes informatiques, les entreprises se tournent vers des solutions d'externalisation telles que le Cloud Computing. Le Cloud se basent sur la virtualisation comme principale technologie permettant la mutualisation. L'utilisation de la virtualisation apporte de nombreux défis donc les principaux portent sur les performances des applications dans les machines virtuelles (VM) et la prévisibilité de ces performances. Dans un système virtualisé, les ressources matérielles sont partagées entre toutes les VMs du système. Dans le cas du CPU, c'est l'ordonnanceur de l'hyperviseur qui se charge de le partager entre tous les processeurs virtuels (vCPU) des VMs. L'hyperviseur réalise une allocation à temps partagé du CPU entre tous les vCPUs des VMs. Chaque vCPU a accès au CPU périodiquement. Ainsi, les vCPUs des VMs n'ont pas accès de façon continue au CPU, mais plutôt discontinue. Cette discontinuité est à l'origine de nombreux problèmes sur des mécanismes tels que la gestion d'interruption et les mécanismes de synchronisation de bas niveau dans les OS invités. Dans cette thèse, nous proposons deux contributions pour répondre à ces problèmes dans la virtualisation. La première est un nouvel ordonnanceur de l'hyperviseur qui adapte dynamiquement la valeur du quantum dans l'hyperviseur en fonction du type des applications dans les VMs sur une plate-forme multi-coeurs. La seconde contribution est une nouvelle primitive de synchronisation (nommée I-Spinlock) dans l'OS invité. Dans un Cloud fournissant un service du type IaaS, la VM est l'unité d'allocation. Le fournisseur établit un catalogue des types de VMs présentant les différentes quantités de ressources qui sont allouées à la VM vis-à-vis des différents périphériques. Ces ressources allouées à la VM correspondent à un contrat sur une qualité de service négocié par le client auprès du fournisseur. L'imprévisibilité des performances est la conséquence de l'incapacité du fournisseur à garantir cette qualité de service. Deux principales causes sont à l'origine de ce problème dans le Cloud: (i) un mauvais partage des ressources entre les différentes VMs et (ii) l'hétérogénéité des infrastructures dans les centres d'hébergement. Dans cette thèse, nous proposons deux contributions pour répondre au problème d'imprévisibilité des performances. La première contribution s'intéresse au partage de la ressource logicielle responsable de la gestion des pilotes, et propose une approche de facturation du temps CPU utilisé par cette couche logiciel aux VMs. La deuxième contribution s'intéresse à l'allocation du CPU dans les Clouds hétérogènes. Dans cette contribution, nous proposons une approche d'allocation permettant de garantir la capacité de calcul allouée à une VM quelle que soit l'hétérogénéité des CPUs dans l'infrastructure
    corecore