• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 4
  • Tagged with
  • 4
  • 4
  • 4
  • 3
  • 3
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
1

Ordonnancement de processus légers sur architectures multiprocesseurs hiérarchiques : BubbleSched, une approche exploitant la structure du parallélisme des applications

Thibault, Samuel 06 December 2007 (has links) (PDF)
La tendance des constructeurs pour le calcul scientifique est à l'imbrication de technologies permettant un degré de parallélisme toujours plus fort au sein d'une même machine : architecture NUMA, puces multicœurs, SMT. L'efficacité de l'exécution d'une application parallèle irrégulière sur de telles machines hiérarchiques repose alors sur la qualité de l'ordonnancement des tâches et du placement des données, pour éviter le plus possible les pénalités NUMA et les défauts de cache. Les systèmes d'exploitation actuels, pris au dépourvu car trop généralistes, laissent les concepteurs d'application contraints à « câbler » leurs programmes pour une machine donnée.<br /><br />Dans cette thèse, pour garantir une certaine portabilité des performances, nous définissons la notion de /bulle/ permettant d'exprimer la nature structurée du parallélisme du calcul, et nous modélisons l'architecture de la machine cible par une hiérarchie de listes de tâches. Une interface de programmation et des outils de débogage de haut niveau permettent alors de développer simplement des ordonnanceurs dédiés, efficaces et portables. Différents ordonnanceurs mettant en œuvre des approches variées ont été développés, en partie notamment par des stagiaires encadrés au sein de l'équipe, ce qui montre à la fois la puissance et la simplicité de l'interface. C'est ainsi une véritable plate-forme de développement et d'expérimentation d'ordonnanceurs à bulles qui a été intégrée au sein de la bibliothèque de threads utilisateur marcel. Le support OpenMP du compilateur GCC, GOMP, a été étendu pour utiliser cette bibliothèque et exprimer la nature structurée des sections parallèles imbriquées à l'aide de bulles. Avec la couche de compatibilité POSIX de marcel, ces supports ont permis de tester les différents ordonnanceurs à bulles développés, sur différentes applications. Les gains obtenus, de l'ordre de 20 à 40%, montrent l'intérêt de notre approche.
2

De l'interaction des communications et de l'ordonnancement de threads au sein des grappes de machines multi-coeurs

Trahay, François 13 November 2009 (has links) (PDF)
La tendance actuelle des constructeurs pour le calcul scientifique est à l'utilisation de grappes de machines dont les noeuds comportent un nombre de coeurs toujours plus grand. Le modèle basé uniquement sur MPI laisse peu à peu la place à des modèles mélangeant l'utilisation de threads et de MPI. Ce changement de modèle entraîne de nombreuses problématiques car les implémentations MPI n'ont pas été conçues pour supporter les applications multi-threadées. Dans cette thèse, afin de garantir le bon fonctionnement des communications, nous proposons un module logiciel faisant interagir l'ordonnanceur de threads et la bibliothèque de communication. Ce module, en collaborant avec l'ordonnanceur de threads, permet de faire progresser les communications en arrière-plan et d'assurer un haut niveau de réactivité, même lorsque la machine est surchargée.
3

De l’interaction des communications et de l’ordonnancement de threads au sein des grappes de machines multi-cœurs / About the interactions between communication and thread scheduling in clusters of multicore machines

Trahay, François 13 November 2009 (has links)
La tendance actuelle des constructeurs pour le calcul scientifique est à l'utilisation de grappes de machines dont les noeuds comportent un nombre de coeurs toujours plus grand. Le modèle basé uniquement sur MPI laisse peu à peu la place à des modèles mélangeant l'utilisation de threads et de MPI. Ce changement de modèle entraîne de nombreuses problématiques car les implémentations MPI n'ont pas été conçues pour supporter les applications multi-threadées. Dans cette thèse, afin de garantir le bon fonctionnement des communications, nous proposons un module logiciel faisant interagir l'ordonnanceur de threads et la bibliothèque de communication. Ce gestionnaire d'entrées/sorties générique prend en charge la détection des événements du réseau et exploite les multiples unités de calcul présentes sur la machine de manière transparente. Grâce à la collaboration étroite avec l'ordonnanceur de threads, le gestionnaire d'entrées/sorties que nous proposons assure un haut niveau de réactivité aux événements du réseau. Nous montrons qu'il est ainsi possible de faire progresser les communications réseau en arrière-plan et donc de recouvrir les communications par du calcul. La parallélisation de la bibliothèque de communication est également facilité par un mécanisme d'exportation de tâches capable d'exploiter les différentes unités de calcul disponible tout en prenant en compte la localité des données. Les gains obtenus sur des tests synthétiques et sur des applications montre que l'interaction entre la bibliothèque de communication et l'ordonnanceur de threads permet de réduire le coût des communications et donc d'améliorer les performances d'une application. / The current trend of constructors for scientific computation is to build clusters whose node include an increasing number of cores.The classical programming model that is only based on MPI is being replaced by hybrid approaches that mix communication and multi-threading. This evolution of the programming model leads to numerous problems since MPI implementations were not designed for multi-threaded applications. In this thesis, in order to guarantee a smooth behavior of communication, we propose a software module that interact with both the threads scheduler and the communication library. This module, by working closely with the thread scheduler, allows to make communication progress in the background and guarantees a high level of reactivity to network events, even when the node is overloaded. We show that this permits to make communication progress in the background and thus to overlap communication and computation. The parallelization of the communication library is also made easier thanks to a task onloading mechanism that is able to exploit the available cores while taking data locality into account. The results we obtain on synthetic application as well as real-life applications show that the interaction between the thread scheduler and the communication library allows to reduce the overhead of communication and thus to improve the application performance.
4

Programmation des architectures hétérogènes à l'aide de tâches divisibles ou modulables / Programmation of heterogeneous architectures using moldable tasks

Cojean, Terry 26 March 2018 (has links)
Les ordinateurs équipés d'accélérateurs sont omniprésents parmi les machines de calcul haute performance. Cette évolution a entraîné des efforts de recherche pour concevoir des outils permettant de programmer facilement des applications capables d'utiliser toutes les unités de calcul de ces machines. Le support d'exécution StarPU développé dans l'équipe STORM de INRIA Bordeaux, a été conçu pour servir de cible à des compilateurs de langages parallèles et des bibliothèques spécialisées (algèbre linéaire, développements de Fourier, etc.). Pour proposer la portabilité des codes et des performances aux applications, StarPU ordonnance des graphes dynamiques de tâches de manière efficace sur l’ensemble des ressources hétérogènes de la machine. L’un des aspects les plus difficiles, lors du découpage d’une application en graphe de tâches, est de choisir la granularité de ce découpage, qui va typiquement de pair avec la taille des blocs utilisés pour partitionner les données du problème. Les granularités trop petites ne permettent pas d’exploiter efficacement les accélérateurs de type GPU, qui ont besoin de peu de tâches possédant un parallélisme interne de données massif pour « tourner à plein régime ». À l’inverse, les processeurs traditionnels exhibent souvent des performances optimales à des granularités beaucoup plus fines. Le choix du grain d’un tâche dépend non seulement du type de l'unité de calcul sur lequel elle s’exécutera, mais il a en outre une influence sur la quantité de parallélisme disponible dans le système : trop de petites tâches risque d’inonder le système en introduisant un surcoût inutile, alors que peu de grosses tâches risque d’aboutir à un déficit de parallélisme. Actuellement, la plupart des approches pour solutionner ce problème dépendent de l'utilisation d'une granularité des tâches intermédiaire qui ne permet pas un usage optimal des ressources aussi bien du processeur que des accélérateurs. L'objectif de cette thèse est d'appréhender ce problème de granularité en agrégeant des ressources afin de ne plus considérer de nombreuses ressources séparées mais quelques grosses ressources collaborant à l'exécution de la même tâche. Un modèle théorique existe depuis plusieurs dizaines d'années pour représenter ce procédé : les tâches parallèles. Le travail de cette thèse consiste alors en l'utilisation pratique de ce modèle via l'implantation de mécanismes de gestion de tâches parallèles dans StarPU et l'implantation ainsi que l'évaluation d'ordonnanceurs de tâches parallèles de la littérature. La validation du modèle se fait dans le cadre de l'amélioration de la programmation et de l'optimisation de l'exécution d'applications numériques au dessus de machines de calcul modernes. / Hybrid computing platforms equipped with accelerators are now commonplace in high performance computing platforms. Due to this evolution, researchers concentrated their efforts on conceiving tools aiming to ease the programmation of applications able to use all computing units of such machines. The StarPU runtime system developed in the STORM team at INRIA Bordeaux was conceived to be a target for parallel language compilers and specialized libraries (linear algebra, Fourier transforms,...). To provide the portability of codes and performances to applications, StarPU schedules dynamic task graphs efficiently on all heterogeneous computing units of the machine. One of the most difficult aspects when expressing an application into a graph of task is to choose the granularity of the tasks, which typically goes hand in hand with the size of blocs used to partition the problem's data. Small granularity do not allow to efficiently use accelerators such as GPUs which require a small amount of task with massive inner data-parallelism in order to obtain peak performance. Inversely, processors typically exhibit optimal performances with a big amount of tasks possessing smaller granularities. The choice of the task granularity not only depends on the type of computing units on which it will be executed, but in addition it will influence the quantity of parallelism available in the system: too many small tasks may flood the runtime system by introducing overhead, whereas too many small tasks may create a parallelism deficiency. Currently, most approaches rely on finding a compromise granularity of tasks which does not make optimal use of both CPU and accelerator resources. The objective of this thesis is to solve this granularity problem by aggregating resources in order to view them not as many small resources but fewer larger ones collaborating to the execution of the same task. One theoretical machine and scheduling model allowing to represent this process exists since several decades: the parallel tasks. The main contributions of this thesis are to make practical use of this model by implementing a parallel task mechanism inside StarPU and to implement and study parallel task schedulers of the literature. The validation of the model is made by improving the programmation and optimizing the execution of numerical applications on top of modern computing machines.

Page generated in 0.1175 seconds