• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 101
  • 96
  • 39
  • 1
  • Tagged with
  • 232
  • 232
  • 154
  • 143
  • 119
  • 117
  • 99
  • 99
  • 98
  • 95
  • 94
  • 90
  • 49
  • 46
  • 44
  • 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.
21

Tolérance aux fautes et reconfiguration dynamique pour les applications distribuées à grande échelle

Besseron, Xavier 28 April 2010 (has links) (PDF)
Ce travail se place dans le cadre du calcul haute performance sur des plateformes d'exécution de grande taille telles que les grilles de calcul. Les grilles de calcul sont notamment caractérisées par (1) des changements fréquents des conditions d'exécution et, en particulier, par (2) une probabilité importante de défaillance due au grand nombre de composants. Pour exécuter une application efficacement dans un tel environnement, il est nécessaire de prendre en compte ces paramètres. Nos travaux de recherche reposent sur la représentation abstraite de l'application sous forme d'un graphe de flot de données de l'environnement de programmation parallèle et distribuée Athapascan/Kaapi. Nous utilisons cette représentation abstraite pour apporter des solutions aux problèmes (1) de reconfiguration dynamique et (2) de tolérance aux fautes. - Tout d'abord, nous proposons un mécanisme de reconfiguration dynamique qui gère, de manière transparente pour le programmeur de la reconfiguration, les problèmes d'accès concurrents sur l'état de l'application et la cohérence mutuelle des états en cas de reconfiguration distribuée. - Ensuite, nous présentons un protocole de tolérance aux fautes original qui permet d'effectuer une reprise partielle de l'application en cas de panne. Pour cela, il détermine l'ensemble des tâches de calcul strictement nécessaires à la reprise de l'application. Ces contributions sont évaluées en utilisant les logiciels Kaapi et X-Kaapi sur la plateforme de calcul Grid'5000.
22

Développement d'un modèle 3D Automate Cellulaire-Éléments Finis (CAFE) parallèle pour la prédiction de structures de grains lors de la solidification d'alliages métalliques

Carozzani, Tommy 04 December 2012 (has links) (PDF)
La formation de la structure de grains dans les métaux pendant la solidification est déterminante pour les propriétés mécaniques et électroniques des pièces coulées. En plus de la texture donnée au matériau, la germination et la croissance des grains sont liées en particulier avec la formation des phases thermodynamiques et les inhomogénéités en composition d'éléments d'alliage. La structure de grains est rarement modélisée à l'échelle macroscopique, d'autant plus que l'approximation 2D est très souvent injustifiée. Dans ces travaux, la germination et la croissance de chaque grain individuel sont suivies avec un modèle macroscopique 3D CAFE. La microstructure interne des grains n'est pas explicitement résolue. Pour valider les approximations faites sur cette microstructure, une comparaison directe avec un modèle microscopique "champ de phase" a été réalisée. Celle-ci a permis de valider les hypothèses de construction du modèle CAFE, de mettre en avant le lien entre données calculées par les modèles microscopiques et paramètres d'entrée des modèles à plus grande échelle, et les domaines de validité de chaque modèle. Dans un deuxième temps, un couplage avec la ségrégation chimique et les bases de données thermodynamiques a été mise en place et appliquée sur un alliage binaire étain-plomb. Une expérience de macroségrégation par convection naturelle a été simulée. L'accord entre les courbes de température expérimentales et simulées atteint une précision de l'ordre de 1K, et la recalescence est correctement prédite. Les cartes de compositions sont comparables qualitativement, ainsi que la structure de grains. Les avantages du suivi de la structure ont été mis en évidence par rapport à une simulation par éléments finis classique. De plus, il a été montré que le calcul 3D était ici indispensable. Enfin, une implémentation parallèle optimisée du code a permis d'appliquer le modèle CAFE à un lingot de silicium polycristallin industriel de dimensions 0,192 x 0,192 x 2,08m, avec une taille de cellules de 250µm. Au total, 4,9 milliards de cellules sont représentées sur le domaine, et la germination et la croissance de 1,6 million de grains sont suivies.
23

Algorithmes d'optimisation et de contrôle d'interface libre - Application à la production industrielle d'aluminium

Orriols, Antonin 12 1900 (has links) (PDF)
La production industrielle d'aluminium met en jeu plusieurs aspects physiques, à la fois chimiques, thermiques et magnétohydrodynamiques (MHD). L'une de ses particularités est la coexistence dans une cuve de deux fluides non miscibles, ce qui conduit à la présence d'une interface libre. Ce procédé consomme près de 2% de l'électricité mondiale, la moitié étant perdue par effet Joule. L'enjeu est de réduire ce coût sans déstabiliser le procédé: il s'agit typiquement d'un problème de contrôle optimal, que nous traitons en considérant une modélisation MHD de la cuve. Deux approches sont utilisées pour effectuer cette optimisation, à savoir considérer une contrainte d'état non linéaire basée sur un couplage entre les équations de Maxwell et de Navier-Stokes multifluides, et une contrainte d'état linéaire résultant d'une approximation shallow water de la précédente. Après une courte introduction à la modélisation du procédé et aux concepts du contrôle optimal basé sur le principe de Pontryagin, nous décrivons dans un premier temps le contrôle de l'évolution de l'interface modélisée par l'approximation shallow water. S'ensuivent un travail de parallèlisation du logiciel de simulation du procédé dans le cadre non linéaire et la recherche numérique d'actionneurs acceptables pour son contrôle. Enfin, un algorithme d'optimisation de la forme de l'interface est proposé sous une contrainte d'état non linéaire simplifié, à savoir les équations de Navier-Stokes bifluides en dimension deux.
24

Problème du Consensus dans le Modèle Homonyme

Tran-The, Hung 06 June 2013 (has links) (PDF)
So far, the distributed computing community has either assumed that all the processes of a distributed system have distinct identifiers or, more rarely, that the processes are anonymous and have no identifiers. These are two extremes of the same general model: namely, n processes use l different identifiers, where 1 l n. We call this model homonymous model. To determine the power of homonymous model as well as the importance of identifiers in distributed computing, this thesis studies the consensus problem, one of the most famous distributed computing problem. We give necessary and sufficient conditions on the number of identifiers for solving consensus in a distributed system with t faulty processes in the synchronous case. We show that in crash, send omission and general omission failures model, the uniform consensus is solvable even if processes are anonymous. Thus, identifiers are not useful in that case. However identifiers become important in Byzantine failures model: 3t + 1 identifiers is necessary and sufficient for Byzantine agreement. Surprisingly the number of identifiers must be greater than n+3t 2 in presence of three facets of uncertainty: partial synchrony, Byzantine failures and homonyms. This demonstrates two differences from the classical model (which has l = n): there are situations where relaxing synchrony to partial synchrony renders agreement impossible, and, in the partially synchronous case, increasing the number of correct processes can actually make it harder to reach agreement.
25

Calcul à l'echelle méso avec interface non locale des composites stratifiés

Bordeu Weldt, Felipe Eduardo 06 January 2012 (has links) (PDF)
L'industrie utilise de plus en plus les matériaux composites stratifiés à matrice organique (CMO) pour remplacer les alliages métalliques légers. Avec un rapport résistance/masse supérieur aux alliages métalliques, ces matériaux constituent une véritable alternative pour diminuer le poids des structures. Cependant, la certification des structures en composite est une procédure lourde et complexe. Le Virtual Testing consiste à remplacer une grande partie des essais réels par des simulations numériques en vue de diminuer la quantité d'essais physiques nécessaires pour la certification. Toutefois, les modèles ainsi que les méthodes de calcul utilisés pour les simulations doivent avoir la confiance des autorités de contrôle. On ce concentre ici sur le Méso-modèle Amélioré d'Endommagement des Composites Stratifiés qui, depuis un vingtaine d'années, a démontré être un modèle capable de prendre en compte la plupart de mécanismes de dégradation d'une structure composite. Ce modèle, non linéaire, non local et d'évolution, est défini à l'échelle du pli. La taille des problèmes résultants de la simulation de ce type de modèle est considérable. Dans ces travaux, un grand intérêt a été porté au traitement numérique du modèle. Dans un premier temps, l'intégration du modèle dans un code de calcul a permis d'y apporter des améliorations. En ce qui concerne la méthode de résolution, une méthode de décomposition de domaine permet l'utilisation du modèle pour la simulation de structures de taille moyenne. L'approche proposée permet de surmonter les difficultés liées à l'utilisation d'un modèle non local et non linéaire au sein d'une méthode de décomposition de domaine.
26

Compiling for a multithreaded dataflow architecture : algorithms, tools, and experience

Li, Feng 20 May 2014 (has links) (PDF)
Across the wide range of multiprocessor architectures, all seem to share one common problem: they are hard to program. It is a general belief that parallelism is a software problem, and that perhaps we need more sophisticated compilation techniques to partition the application into concurrent threads. Many experts also make the point that the underlining architecture plays an equally important architecture before one may expect significant progress in the programmability of multiprocessors. Our approach favors a convergence of these viewpoints. The convergence of dataflow and von Neumann architecture promises latency tolerance, the exploitation of a high degree of parallelism, and light thread switching cost. Multithreaded dataflow architectures require a high degree of parallelism to tolerate latency. On the other hand, it is error-prone for programmers to partition the program into large number of fine grain threads. To reconcile these facts, we aim to advance the state of the art in automatic thread partitioning, in combination with programming language support for coarse-grain, functionally deterministic concurrency. This thesis presents a general thread partitioning algorithm for transforming sequential code into a parallel data-flow program targeting a multithreaded dataflow architecture. Our algorithm operates on the program dependence graph and on the static single assignment form, extracting task, pipeline, and data parallelism from arbitrary control flow, and coarsening its granularity using a generalized form of typed fusion. We design a new intermediate representation to ease code generation for an explicit token match dataflow execution model. We also implement a GCC-based prototype. We also evaluate coarse-grain dataflow extensions of OpenMP in the context of a large-scale 1024-core, simulated multithreaded dataflow architecture. These extension and simulated architecture allow the exploration of innovative memory models for dataflow computing. We evaluate these tools and models on realistic applications.
27

Benchmark-driven Approaches to Performance Modeling of Multi-Core Architectures

Putigny, Bertrand 27 March 2014 (has links) (PDF)
Ce manuscrit s'inscrit dans le domaine du calcul intensif (HPC) où le besoin croissant de performance pousse les fabricants de processeurs à y intégrer des mécanismes de plus en plus sophistiqués. Cette complexité grandissante rend l'utilisation des architectures compliquée. La modélisation des performances des architectures multi-cœurs permet de remonter des informations aux utilisateurs, c'est à dire les programmeurs, afin de mieux exploiter le matériel. Cependant, du fait du manque de documentation et de la complexité des processeurs modernes, cette modélisation est souvent difficile. L'objectif de ce manuscrit est d'utiliser des mesures de performances de petits fragments de codes afin de palier le manque d'information sur le matériel. Ces expériences, appelées micro-benchmarks, permettent de comprendre les performances des architectures modernes sans dépendre de la disponibilité des documentations techniques. Le premier chapitre présente l'architecture matérielle des processeurs modernes et, en particulier, les caractéristiques rendant la modélisation des performances complexe. Le deuxième chapitre présente une méthodologie automatique pour mesurer les performances des instructions arithmétiques. Les informations trouvées par cette méthode sont la base pour des modèles de calculs permettant de prédire le temps de calcul de fragments de codes arithmétique. Ce chapitre présent également comment de tels modèles peuvent être utilisés pour optimiser l'efficacité énergétique, en prenant pour exemple le processeur SCC. La dernière partie de ce chapitre motive le fait de réaliser un modèle mémoire prenant en compte la cohérence de cache pour prédire le temps d'accès au données. Le troisième chapitre présente l'environnement de développement de micro-benchmark utilisé pour caractériser les hiérarchies mémoires dotées de cohérence de cache. Ce chapitre fait également une étude comparative des performances mémoire de différentes architectures et l'impact sur les performances du choix du protocole de cohérence. Enfin, le quatrième chapitre présente un modèle mémoire permettant la prédiction du temps d'accès aux données pour des applications régulières de type \openmp. Le modèle s'appuie sur l'état des données dans le protocole de cohérence. Cet état évolue au fil de l'exécution du programme en fonction des accès à la mémoire. Pour chaque transition, une fonction de coût est associée. Cette fonction est directement dérivée des résultats des expériences faites dans le troisième chapitre, et permet de prédire le temps d'accès à la mémoire. Une preuve de concept de la fiabilité de ce modèle est faite, d'une part sur les applications d'algèbre et d'analyse numérique, d'autre part en utilisant ce modèle pour modéliser les performance des communications \mpi en mémoire partagée.
28

Programmation efficace et sécurisé d'applications à mémoire partagée

Sifakis, Emmanuel 06 May 2013 (has links) (PDF)
L'utilisation massive des plateformes multi-cœurs et multi-processeurs a pour effet de favoriser la programmation parallèle à mémoire partagée. Néanmoins, exploiter efficacement et de manière correcte le parallélisme sur ces plateformes reste un problème de recherche ouvert. De plus, leur modèle d'exécution sous-jacent, et notamment les modèles de mémoire "relâchés", posent de nouveaux défis pour les outils d'analyse statiques et dynamiques. Dans cette thèse nous abordons deux aspects importants dans le cadre de la programmation sur plateformes multi-cœurs et multi-processeurs: l'optimisation de sections critiques implémentées selon l'approche pessimiste, et l'analyse dynamique de flots d'informations. Les sections critiques définissent un ensemble d'accès mémoire qui doivent être exécutées de façon atomique. Leur implémentation pessimiste repose sur l'acquisition et le relâchement de mécanismes de synchronisation, tels que les verrous, en début et en fin de sections critiques. Nous présentons un algorithme générique pour l'acquisition/relâchement des mécanismes de synchronisation, et nous définissons sur cet algorithme un ensemble de politiques particulier ayant pour objectif d'augmenter le parallélisme en réduisant le temps de possession des verrous par les différentes threads. Nous montrons alors la correction de ces politiques (respect de l'atomicité et absence de blocages), et nous validons expérimentalement leur intérêt. Le deuxième point abordé est l'analyse dynamique de flot d'information pour des exécutions parallèles. Dans ce type d'analyse, l'enjeu est de définir précisément l'ordre dans lequel les accès à des mémoires partagées peuvent avoir lieu à l'exécution. La plupart des travaux existant sur ce thème se basent sur une exécution sérialisée du programme cible. Ceci permet d'obtenir une sérialisation explicite des accès mémoire mais entraîne un surcoût en temps d'exécution et ignore l'effet des modèles mémoire relâchées. A contrario, la technique que nous proposons permet de prédire l'ensemble des sérialisations possibles vis-a-vis de ce modèle mémoire à partir d'une seule exécution parallèle ("runtime prediction"). Nous avons développé cette approche dans le cadre de l'analyse de teinte, qui est largement utilisée en détection de vulnérabilités. Pour améliorer la précision de cette analyse nous prenons également en compte la sémantique des primitives de synchronisation qui réduisent le nombre de sérialisations valides. Les travaux proposé ont été implémentés dans des outils prototype qui ont permit leur évaluation sur des exemples représentatifs.
29

Une démarche orientée modèle pour le déploiement de systèmes en environnements ouverts distribués

Dubus, Jérémy 10 October 2008 (has links) (PDF)
Le déploiement reste l'une des étapes du cycle de vie des logiciels la moins standardisée et outillée à ce jour. Dans ce travail, nous identifions quatre grands défis à relever pour dé- ployer des systèmes logiciels distribués et hétérogènes. Le premier défi est de réussir à initier le consensus manquant autour d'un langage générique de déploiement de logiciels. Le deuxième défi consiste en la vérification statique de déploiements logiciels décrits dans ce langage pour assurer un déroulement correct avant d'exécuter les opérations de déploiement. Le troisième défi est de réaliser une plate-forme intergicielle capable d'interpréter ce langage et d'effectuer le déploiement de n'importe quel système logiciel réparti. Enfin le quatrième défi est d'appli- quer ces déploiements de systèmes dans les environnements ouverts distribués, c'est-à-dire les réseaux fluctuants et à grande échelle comme les réseaux ubiquitaires ou les grilles de calcul. Notre contribution consiste à définir une démarche de déploiement de systèmes distribués cen- trée sur quatre rôles pour relever ces défis : l'expert réseau, l'expert logiciel, l'administrateur système et l'architecte métier. D'un côté, l'approche DeployWare, conforme à l'ingénierie des modèles, est définie par un méta-modèle multi-rôles pour décrire le déploiement de la couche intergicielle du système ainsi que par une machine virtuelle capable d'exécuter automatique- ment le déploiement de cette couche. L'utilisation d'un langage de méta-modélisation permet d'écrire des programmes de vérification statique des modèles de déploiement. De l'autre côté, l'approche DACAR propose un méta-modèle d'architecture générique pour exprimer et exé- cuter le déploiement d'une application métier à base de composants. Cette double approche DeployWare/DACAR permet de prendre en compte, lors de la description du déploiement, les propriétés des environnements ouverts distribués selon une approche conforme à l'informatique auto-gérée. Notre contribution est validée par plusieurs expériences pour valider la capacité de prise en charge des environnements ouverts ubiquitaires, et pour éprouver l'hétérogénéité des technologies déployables dans le monde des services d'entreprise.
30

Analyzing the memory behavior of parallel scientific applications / Analyse du comportement mémoire d'applications parallèles de calcul scientifique

Beniamine, David 05 December 2016 (has links)
Depuis plusieurs décennies, afin de réduire la consommation énergétique des processeurs, les constructeurs fabriquent des ordinateurs de plus en plus parallèles.Dans le même temps, l'écart de fréquence entre les processeurs et la mémoire a significativement augmenté.Pour compenser cet écart, les processeurs modernes embarquent une hiérarchie de caches complexe.Développer un programme efficace sur de telles machines est une tâche complexe.Par conséquent, l'analyse de performance est devenue une étape majeure lors du développement d'applications requérant des performances.La plupart des outils d'analyse de performances se concentrent sur le point de vue du processeur.Ces outils voient la mémoire comme une entité monolithique et sont donc incapable de comprendre comment elle est accédée.Cependant, la mémoire est une ressource critique et les schémas d'accès à cette dernière peuvent impacter les performances de manière significative.Quelques outils permettant l'analyse de performances mémoire existent, cependant ils sont basé sur un échantillon age à large grain.Par conséquent, ces outils se concentrent sur une petite partie de l’Exécution et manquent le comportement global de l'application.De plus, l'échantillonnage à large granularité ne permet pas de collecter des schémas d'accès.Dans cette thèse, nous proposons deux outils différences pour analyser le comportement mémoire d'une application.Le premier outil est conçu spécifiquement pour pour les machines NUMA (Not Uniform Memory Accesses) et fournit plusieurs visualisations du schéma global de partage de chaque structure de données entre les flux d’ExécutionLe deuxième outil collecte des traces mémoires a grain fin avec information temporelles.Nous proposons de visualiser ces traces soit à l'aide d'un outil générique de gestion de traces soit en utilisant une approche programmatique basé sur R.De plus nous évaluons ces deux outils en les comparant a des outils existant de trace mémoire en terme de performances, précision et de complétude. / Since a few decades, to reduce energy consumption, processor vendors builds more and more parallel computers.At the same time, the gap between processors and memory frequency increased significantly.To mitigate this gap, processors embed a complex hierarchical caches architectureWriting efficient code for such computers is a complex task.Therefore, performance analysis has became an important step of the development of applications seeking for performances.Most existing performance analysis tools focuses on the point of view of the processor.Theses tools see the main memory as a monolithic entity and thus are not able to understand how it is accessed.However, memory is a common bottleneck in High Performances Computing, and the pattern of memory accesses can impact significantly the performances.There are a few tools to analyze memory performances, however theses tools are based on a coarse grain sampling.Consequently, they focus on a small part of the execution missing the global memory behavior.Furthermore, these coarse grain sampling are not able to collect memory accesses patterns.In this thesis we propose two different tools to analyze the memory behavior of an application.The first tool is designed specifically for Not Uniform Memory Accesses machines and provides some visualizations of the global sharing pattern inside each data structure between the threads.The second one collects fine grain memory traces with temporal information.We can visualize theses traces either with a generic trace management framework or with a programmatic exploration using R.Furthermore we evaluate both of these tools, comparing them with state of the art memory analysis tools in terms of performances, precision and completeness.

Page generated in 0.0594 seconds