1 |
Performance monitoring of throughput constrained dataflow programs executed on shared-memory multi-core architectures / Evaluation de performance d'applications flot de données executées sur des architectures multi-coeurSelva, Manuel 02 July 2015 (has links)
Les progrès continus de la microélectronique couplés au problème de gestion de la puissance dissipée ont conduit les fabricants de processeurs à se tourner vers des puces dites multi-coeurs au début des années 2000. Ces processeurs sont composés de plusieurs unités de calcul indépendantes. Contrairement aux progrès précédents ces architectures multi-coeurs, le logiciel doit être en grande parti repensé pour tirer parti de toutes les unités de calcul. Il faut pouvoir paralléliser une application séquentielle en tâches le plus indépendantes possibles pour pouvoir les exécuter sur différentes unités de calcul. Pour cela, de nombreux modèles de programmations dits concurrents ont été proposés. Dans cette thèse nous nous intéressons aux programmes décrits à l’aide du modèle dataflow. Ce travail porte sur l’évaluation des performances de programmes dataflow (forme que revêtent typiquement des applications de types traitement de flux vidéos ou protocoles de communication) sur des architectures multi-coeurs. Plus particulièrement, le sujet de la thèse porte sur l’extension de modèles de programmation dataflow avec des éléments d’expression de propriétés de qualité de service ainsi que la prise en compte de ces éléments pour détecter, à l’exécution, les goulots d’étranglement de performance au sein des programmes. Les informations concernant les goulots d'étranglements collectées pendant l'exécution sont utilisées à la fois pour faire de l'analyse hors-ligne et pour faire des adaptations pendant l'exécution des programmes. Dans le premier cas, le programmeur utilise ces informations pour savoir quelles parties du programme dataflow il faut optimiser et pour savoir comment distribuer efficacement le programme sur les unités de calcul. Dans le second cas, les informations collectées sont utilisées par des mécanismes d'adaptation automatique afin de redistribuer le travail sur les différentes unités de calcul de façon plus efficace. Nous portons une attention particulière au profiling de l'utilisation faite par les applications dataflow du système mémoire. Les informations sur les échanges de données fournies par le modèle de programmation permettent d'exploiter de façon intelligente les architectures mémoires des machines multi-coeurs. Néanmoins, la complexité de ces dernières ne permet pas de façon générale d'évaluer statiquement l'impact sur les performances des accès mémoires. Nous proposons donc la mise en place d'un système de profiling mémoire pour des applications dataflow basé sur des mécanismes matériels. / Because of physical limits, hardware designers have switched to parallel systems to exploit the still growing number of transistors per square millimeter of silicon. These parallel systems are made of several independent computing units. To benefit from these computing units, software must be changed. Existing sequential applications have to be split into independent tasks to be executed in parallel on the different computing units. To that end, many concurrent programming models have been proposed and are in use today. We focus in this thesis on the dataflow concurrent programming model. This work is about performance evaluation of dataflow programs on multicore architectures. We propose to extend dataflow programming models with the notion of throughput constraints and to take this information into account in the compilation tool chain to detect at runtime the throughput bottlenecks. The profiling results gathered during the execution are used both for off-line analyzes and to adapt the application during its execution. In the former case, the developer uses this information to know which part of the dataflow program should be optimized and to efficiently distribute the program on the computing units. In the later case, the profiling information is used by runtime adaptation mechanisms to distribute differently the work on the computing units. We give a particular focus on the profiling of the usage of the memory subsystem. The data exchange information provide by the programming model allows to efficiently used the memory subsystem of multicore architectures. Nevertheless, the complexity of modern memory systems doesn't allow to statically evaluate the impact of memory accesses on the global performances of the application. We propose to set up memory profiling dedicated to dataflow applications based on hardware profiling mechanisms.
|
2 |
Un schéma d'emprunt de ressources pour l'adaptation du comportement d'applications distribuées / A resource borrowing schema for behavior adaptation of distributed applicationsBatouma, Narkoy 30 September 2011 (has links)
Les systèmes d’exploitation utilisent très généralement une politique de « meilleur effort » (Best-effort) pour exécuter les applications. Tant que les ressources sont suffisantes, les applications s’exécutent normalement mais quand les ressources deviennent insuffisantes, des mécanismes de contrôle sont nécessaires pour continuer à obtenir des services de qualité acceptable. Cette thèse a pour objectif de gérer la QoS des applications distribuées. La première partie propose un middleware totalement décentralisé pour contrôler l’utilisation des ressources des applications distribuées. Cette approche se fonde sur une planification approximative et un schéma d’emprunt de ressources afin d’améliorer la QoS globale du système. Via ce schéma d’emprunt, chaque nœud construit localement une vue détaillée de la disponibilité des ressources dans le système. La présence da la connaissance de la disponibilité des ressources en local permet à chaque nœud de prendre localement des décisions et de planifier les tâches des applications. Pour un contrôle plus fin de l’exécution, la deuxième partie ajoute un support pour l’adaptation du comportement des applications. Le middleware utilise un modèle général des applications sous forme de graphe d’exécution décoré avec les besoins en ressources. Un chemin dans le graphe est une exécution possible de l’application avec une certaine utilité, et ce sont ces chemins qui fournissent les degrés de liberté dont le middleware a besoin pour adapter la consommation des ressources au contexte. Les applications coopèrent avec le middleware dans le processus de gestion de la QoS lors de l’admission puis durant toute l’exécution. Le middleware est le chef d’orchestre et c’est lui qui pilote et c’est lui qui pilote l’exécution des actions des applications (arcs dans le graphe) Pour valider notre approche, un prototype à base d’agents a été réalisé. Les résultats démontrent l’intérêt de notre approche. / Generally, Operating Systems control and execute applications based on a best effort policy. As long as resources are sufficient, applications are normally executed but when resources become scarce, control mechanisms (graceful degradation) are necessary to maintain acceptable QoS. This thesis aims to manage the QoS of distributed applications. The first part of the thesis proposes a fully decentralized middleware to control the use of resources of distributed applications. This approach is based on a resource borrowing schema and an approximate scheduling in order to improve the overall QoS provided by the system. Using this borrowing schema, each node locally constructs a comprehensive view of resources availability in the system. The local knowledge of resources availability makes it possible for each node to make decisions and to schedule the execution of the applications. To finely control execution, the second part of the thesis adds a support for behavior adaptation of applications. The middleware interprets a general model of applications as an execution graph enriched with resources requirements. Each application must be designed according to this model to be manageable by the middleware (intrusive approach). A path in the graph is a possible execution of application with a certain utility. These paths provide degrees of freedom needed by the middleware to adapt resource consumption to the context. During the QoS management process, applications cooperate with the middleware at admission and execution phase. The middleware guides and controls the execution of applications actions (edges in the execution graph). To validate our approach, a prototype based on agents has been implemented using JADE. The results show the interest of our approach.
|
Page generated in 0.0128 seconds