• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 5
  • 4
  • 1
  • Tagged with
  • 10
  • 10
  • 5
  • 5
  • 3
  • 3
  • 3
  • 3
  • 3
  • 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

Contribution à l'intégration d'un environnement collaboratif en conception amont de produits.

Segonds, Frederic 06 December 2011 (has links) (PDF)
La conception amont de produits mécaniques est, à l'heure actuelle, peu outillée en logiciels (Mougenot 2008), et en particulier en structure collaborative support de l'activité des concepteurs. Cependant, elle fige à elle seule près de 80% des coûts futurs du projet (Michaels and Wood 1989). Dans ce contexte, notre recherche propose un modèle de définition d'un environnement collaboratif amont, à destination des entreprises. Elle s'appuie sur la mise en œuvre d'un protocole expérimental à base d'entretiens réalisés auprès d'utilisateurs finaux au sein d'entreprises. Cette démarche nous a permis de décrire l'activité de conception amont dans des secteurs industriels variés et de montrer que le développement et l'optimisation d'un environnement collaboratif amont reposent principalement sur des représentations intermédiaires (RI) de type "image". Il a été montré que l'identification et la numérisation des RI sont des préalables nécessaires à la définition de cet environnement, et que certaines contraintes métiers peuvent également être supportées par ces RI. Le modèle qui en découle permet de formuler des spécifications pour le développement d'un outil logiciel d'aide à la conception d'environnements collaboratifs, intégré dans un environnement PLM en conception mécanique.
2

Interface Homme-Machine Multimodale pour la Télé-Micromanipulation

Ammi, Mehdi 09 December 2005 (has links) (PDF)
Des études récentes sur les facteurs humains ont montré certaines limitations des téléopérateurs à appréhender et à maîtriser les interactions lors de la manipulation d'objets à l'échelle micrométrique et nanométrique. Le problème majeur provenant de la valeur importante des facteurs d'échelle reliant l'opérateur à son environnement (position : 10-9 m et force : 10-6 N), de l'inadéquation des moyens d'observation et d'interaction par rapport au contexte naturel d'action de l'opérateur, où encore, de la méconnaissance de l'opérateur des forces d'adhésion à l'échelle micrométrique. De ce fait, l'interfaçage homme-machine joue un rôle prépondérant dans les systèmes de télé-micromanipulation. Des interfaces et des dispositifs ergonomiques adaptés aux modalités sensorielles de l'opérateur humain doivent donc être recherchés.<br />Nos travaux de recherche se sont orientés vers l'amélioration du triptyque " Perception -Communication - Interaction " entre l'opérateur et le micromonde en incluant de nouveaux moyens d'interaction. Ces nouvelles interfaces homme- machine (IHM) ont pour rôle d'assister l'opérateur dans ses tâches de manipulation en lui fournissant une aide contextuelle et parfaitement bien adaptée aux contraintes du micromonde (effets d'échelle, environnement, tâches, etc.). Dans ce contexte, nous<br />avons développé une interface homme-machine intuitive et multimodale, dédiée à la télémicromanipulation d'objets de taille micrométrique et travaillant sous le champ de vue de plusieurs microscopes optiques.
3

Mise en place d'une méthodologie pour l'évaluation par des clients de produits innovants au cours de leur conception. Application à l'intégration d'innovations dans le domaine automobile / Implementation of a methodology for the assessment, by customers, of an innovative product during its design process. Integration of innovations in the automotive field.

Da costa, Amélie 25 June 2014 (has links)
L’objet de ces travaux de recherche est de recueillir auprès de clients leur appréciation et leurs ressentis, traduits par des attributs de produit, face à une innovation en cours de conception, c’est-à-dire sans la totalité des informations sensorielles et fonctionnelles normalement disponibles sur un produit fini.Les deux objectifs principaux sont de prendre en compte les avis des clients tôt dans le processus de conception d’une innovation et de pouvoir comparer plusieurs innovations entre elles ou une même innovation à plusieurs stades de développement, en vue d’aider la prise de décisions des concepteurs et des décideurs.Afin de répondre à ces objectifs, plusieurs démarches méthodologiques sont réalisées et vérifiées :• En vue de compenser le manque de caractéristiques sensorielles et fonctionnelles d’une représentation intermédiaire d’une innovation, nous avons mis en place un « descriptif sensoriel »,• En vue de faciliter les comparaisons d’évaluations de produit, nous avons mis en place un questionnaire standard d’évaluation des avis clients. En effet, sur la base d’une recherche bibliographique des attributs de produit de qualités hédonique et pragmatique intervenant dans l’évaluation d’un produit, nous avons créé une liste d’affirmations à noter,• En vue de valider ces outils méthodologiques, nous avons réalisé une démarche comparative de plusieurs jalons ou stades de développement. Au total, nous avons réalisé six évaluations clients d’une même innovation à différents jalons du processus de conception auprès de 302 évaluateurs.Les résultats d’évaluation obtenus sont ensuite étudiés et comparés. Le but est de valider la construction du descriptif sensoriel et du questionnaire et d’apporter nos conclusions quant à l’évaluation de représentations intermédiaires à différents stades du processus de conception.Le questionnaire standard d’évaluation nécessite d’être affiné mais permet déjà de s’enquérir d’attributs de qualités hédonique et pragmatique d’un produit du point de vue des clients. Le descriptif sensoriel facilite la projection des clients vers ce que sera le futur produit. / The purpose of this research is to obtain the appraisal and feelings of customers, translated by product attributes, about an innovative product during its design process, i.e. without all the sensory and functional features available like for a finished product. Two main goals are to inquire the customers’ ways of thinking early in the design process and to compare several products themselves or the same product at different stages in the process. The objective is to help the designers and managers decision.To meet these goals, we realized and checked several methodological approaches:• To offset the lack of sensory and functional features of an innovation’s prototype, we created a “sensorial brochure”,• To facilitate the product assessments’ comparison, we created a standard questionnaire to inquire customers. In fact, with a bibliographic research of the hedonic and pragmatic attributes involved in the assessment of a product, we created a list of statements,• To validate these methodological tools, we realized a comparative approach at several milestones or stages of the design process. In total, we realized six customers’ assessments at different stages of the design process with 302 respondents.Then we studied and compared the assessments’ results. The aim is to validate the construction of the sensorial brochure and the questionnaire and to conclude from the innovation’s prototype assessments at different stages of the design process. The questionnaire needs to be improved but it has already permitted to inquire the customers on their hedonic and pragmatic attributes in front of a product. The sensorial brochure helps customers to imagine the future product.
4

Erbium : Reconciling languages, runtimes, compilation and optimizations for streaming applications / Erbium : réconcilier les langages, les supports d'exécution, la compilation, et les optimisations pour calculs sur des flux de données

Miranda, Cupertino 11 February 2013 (has links)
Frappée par les rendements décroissants de la performance séquentielle et les limitations thermiques, l’industrie des microprocesseurs s’est tournée résolument vers les multiprocesseurs sur puce. Ce mouvement a ramené des problèmes anciens et difficiles sous les feux de l’actualité du développement logiciel. Les compilateurs sont l’une des pièces maitresses du puzzle permettant de poursuivre la traduction de la loi de Moore en gains de performances effectifs, gains inaccessibles sans exploiter le parallélisme de threads. Pourtant, la recherche sur les systèmes parallèles s’est concentrée sur les aspects langage et architecture, et le potentiel reste énorme en termes de compilation de programmes parallèles, d’optimisation et d’adaptation de programmes parallèles pour exploiter efficacement le matériel. Cette thèse relève ces défis en présentant Erbium, un langage de bas niveau fondé sur le traitement de flots de données, et mettant en œuvre des communications multi-producteur multi-consommateur ; un exécutif parallèle très efficace pour les architectures x86 et des variantes pour d’autres types d’architectures ; un schéma d’intégration du langage dans un compilateur illustré en tant que représentation intermédiaire dans GCC ; une étude des primitives du langage et de leurs dépendances permettant aux compilateurs d’optimiser des programmes Erbium à l’aide de transformations spécifiques aux programmes parallèles, et également à travers des formes généralisées d’optimisations classiques, telles que l’élimination de redondances partielles et l’élimination de code mort. / As transistors size and power limitations stroke computer industry, hardware parallelism arose as the solution, bringing old forgotten problems back into equation to solve the existing limitations of current parallel technologies. Compilers regain focus by being the most relevant puzzle piece in the quest for the expected computer performance improvements predicted by Moores law no longer possible without parallelism. Parallel research is mainly focused in either the language or architectural aspects, not really giving the needed attention to compiler problems, being the reason for the weak compiler support by many parallel languages or architectures, not allowing to exploit performance to the best. This thesis addresses these problems by presenting: Erbium, a low level streaming data-flow language supporting multiple producer and consumer task communication; a very efficient runtime implementation for x86 architectures also addressing other types of architectures; a compiler integration of the language as an intermediate representation in GCC; a study of the language primitives dependencies, allowing compilers to further optimise the Erbium code not only through specific parallel optimisations but also through traditional compiler optimisations, such as partial redundancy elimination and dead code elimination.
5

TIREX : une représentation textuelle intermédiaire pour un environnement d'exécution virtuel, échanger des informations du compilateur et d'analyse du programme

Pietrek, Artur 02 October 2012 (has links) (PDF)
Certains environnements ont besoin de plusieurs compilateurs, par exemple un pour le système d'exploitation, supportant la norme C/C++ complète, et l'autre pour les applications, qui supporte éventuellement un sous-ensemble de la norme, mais capable de fournir plus de performance. Le maintien de plusieurs compilateurs pour une plateforme cible représente un effort considérable. Il est donc plus facile d'implémenter et de maintenir un seul outil responsable des optimisations particulières au processeur ciblé. Il nous faut alors un moyen de relier ces compilateurs à l'optimiseur, de préférence, en gardant au passage certaines structures de données internes aux compilateurs qui, soit prendraient du temps, soit seraient impossible à reconstruire à partir du code assembleur par exemple. Dans cette thèse, nous introduisons Tirex, une représentation textuelle intermédiaire pour échanger des informations de bas niveau, déjà dépendantes de la cible, entre les compilateurs, les optimiseurs et les autres outils de la chaîne de compilation. Notre représentation contient un flot d'instructions du processeur cible, mais garde également la structure explicite du programme et supporte la forme SSA (Static Single Assignment). Elle est facilement extensible et très flexible, ce qui permet de transmettre toute donnée jugée importante à l'optimiseur. Nous construisons Tirex par extension de MinIR, une représentation intermédiaire elle-même basée sur un encodage YAML des structures du compilateur. Nos extensions de Tirex comprennent: l'abaissement de la représentation au niveau du processeur cible, la conservation du flot de données du programme, ainsi que l'ajout d'informations sur les structures de boucles et les dépendances de données. Nous montrons que Tirex est polyvalent et peut être utilisé dans une variété d'applications différentes, comme par exemple un environnement d'exécution virtuel (VEE),et fournit une base forte pour un environnement d'analyse du programme. Dans le cadre d'un VEE, nous présentons un interprèteur de la forme SSA et un compilateur just-in-time (JIT). Nous montrons comment l'interprétation d'une représentation au niveau du processeur cible élimine la plupart des problèmes liés à l'exécution en mode mixte. Nous explorons également les questions liées à l'interprétation efficace d'une représentation de programme sous la forme SSA.
6

Modélisation des processus cognitifs et affectifs en conception amont : application aux opérations de catégorisation mentale présentes lors des phases génératives

Kim, Jieun 19 April 2011 (has links) (PDF)
Cette thèse a pour finalité l'analyse de l'activité cognitive des designers en vue de formaliser les processus informationnels inhérents aux activités de design industriel et plus particulièrement les activités de catégorisation mentale de l'information implicite qui précède la génération d'esquisses. Un tel modèle formalisé est nécessaire pour, à partir d'une extraction de la connaissance et des règles de design, élaborer de nouveaux outils numériques qui supporteront les processus informationnels amont en conception innovante. Nous avons mis en place deux expérimentations avec des designers experts et novices, afin de mieux décrire les processus cognitifs et affectifs des designers. Nous avons combiné la méthode cognitive (Protocole d'étude selon la méthode de verbalisation spontanée, questionnaire) et physiologique (Activité Electrodermale et eye tracking). La démarche a bénéficié comme terrain expérimental du projet national GENIUS. Ce projet visait à développer un système support à l'activité des designers dans la phase de catégorisation et de génération en conception amont. Notre apport s'appuie sur la formalisation d'un modèle des processus cognitif et affectif des designers. Ce modèle a permis d'extraire des spécifications pour le développement du système ''GENIUS''.
7

Généralisation de représentations intermédiaires dans une carte topographique multi-échelle pour faciliter la navigation de l'utilisateur / Generalization of intermediate representations in a topographic multi-scale map to ease the user navigation

Dumont, Marion 18 June 2018 (has links)
Une carte multi-échelle est un ensemble de cartes à différentes échelles, dans lequel l’utilisateur peut naviguer via un géoportail. Chacune de ces cartes est préalablement construite par généralisation cartographique, processus qui adapte la représentation cartographique à une échelle donnée. Les changements de représentations qu’implique la généralisation entre deux cartes à différentes échelles sont susceptibles de perturber l’utilisateur, rendant sa navigation plus difficile. Nous proposons dans cette thèse d’ajouter des représentations intermédiaires dans une carte multi-échelle existante, pour créer une évolution plus fluide du contenu cartographique au fil des échelles. Alors que de solides connaissances théoriques existent pour la conception cartographique traditionnelle, on ne sait pas encore comment concevoir une carte multi-échelle efficace. Pour formaliser des connaissances à ce sujet, nous avons étudié un panel de seize cartes multi-échelles existantes. Nous avons analysé les systèmes de zoom utilisés ainsi que l’évolution des représentations cartographiques au fil des échelles, en particulier les changements de niveaux d’abstraction pour les objets bâtis et routiers. Nous avons aussi évalué la variation de complexité visuelle du contenu cartographique au fil des échelles, en utilisant des mesures de clutter visuel. Nous avons ainsi identifié les tendances générales en termes de représentations multi-échelles (comme l’application du standard WMTS), certains facteurs que nous considérons comme ayant une influence négative sur la navigation de l’utilisateur (comme l’utilisation d’une même carte à différentes échelles), ainsi que des pratiques intéressantes visant à la faciliter (comme les représentations mixtes). A partir de ces constats, nous avons formulé des hypothèses sur l’influence des variables de construction des représentations intermédiaires sur la fluidité de navigation. Nous avons construit un matériel de test à partir d’un extrait de la carte multi-échelle Scan Express de l’IGN, entre les cartes existant au 1 : 25k et au 1 : 100k. Nous avons ainsi produit quatre versions différentes de représentations intermédiaires entre ces deux cartes, implémentant nos différentes hypothèses. Cet exercice nous a permis de mieux cerner les verrous techniques que soulève la production de représentations intermédiaires. Nous avons enfin conduit un test utilisateurs contrôlé, en demandant à 15 participants de réaliser une tâche cartographique sur ces différentes cartes multi-échelles, pour évaluer la pertinence de nos hypothèses / A multi-scale map is a set of maps at different scales, displayed on mapping applications, in which users may navigate by zooming in or out. Each of these maps is produced beforehand by cartographic generalization, which aims to adapt the cartographic representation for a target scale. Due to generalization, the representation changes between maps at different scales may disturb the user during its navigation. We assume that adding intermediate representations in an existing multi-scale map may enable a smooth evolution of cartographic content across scales. While theoretical knowledge exists for traditional cartography, we still do not know how to design efficient multi-scale maps. To formalize knowledge on that subject, we studied sixteen existing multi-scale maps. We focused on the used zooming system (zoom levels and display scales) and on the evolution of cartographic representations across scales, in particular for building and road entities. We also analyzed the variation of visual complexity of the map content across scales, using visual clutter measures. We thus identified general trends in terms of multi-scale representation (i.e. use of WMTS standard), some potential disturbing factors (i.e. use of a same map at different scales), but also good practices which may ease the user navigation (i.e. mixed representations). Based on these findings, we made assumptions on the influence of intermediate representations design on user navigation. We built test material from an extract of the Scan Express multi-scale map of the French IGN, between the existing maps at 1:25k and 1:100k scales. We thus produced four different versions of intermediate representations between these two maps, implementing our different hypotheses. This way, we highlighted the technical issues that we faced when producing intermediate representations. Finally, we conducted a controlled user study, asking 15 participants to perform a cartographic task on these different multi-scale maps, to evaluate our hypotheses
8

Native simulation of MPSoC : instrumentation and modeling of non-functional aspects / Simulation native des MPSoC : instrumentation et modélisation des aspects non fonctionnels

Matoussi, Oumaima 30 November 2017 (has links)
Les systèmes embarqués modernes intègrent des dizaines, voire des centaines, de cœurs sur une même puce communiquant à travers des réseaux sur puce, afin de répondre aux exigences de performances édictées par le marché. On parle de systèmes massivement multi-cœurs ou systèmes many-cœurs. La complexité de ces systèmes fait de l’exploration de l’espace de conception architecturale, de la co-vérification du matériel et du logiciel, ainsi que de l’estimation de performance, un vrai défi. Cette complexité est généralement com-pensée par la flexibilité du logiciel embarqué. La dominance du logiciel dans ces architectures nécessite de commencer le développement et la vérification du matériel et du logiciel dès les premières étapes du flot de conception, bien avant d’avoir accès à un prototype matériel.Ainsi, il faut disposer d’un modèle abstrait qui reproduit le comportement de la puce cible en un temps raisonnable. Un tel modèle est connu sous le nom de plateforme virtuelle ou de simulation. L’exécution du logiciel sur une telle plateforme est couramment effectuée au moyen d’un simulateur de jeu d’instruction (ISS). Ce type de simulateur, basé sur l’interprétation des instructions une à une, est malheureusement caractérisé par une vitesse de simulation très lente, qui ne fait qu’empirer par l’augmentation du nombre de cœurs.La simulation native est considérée comme une candidate adéquate pour réduire le temps de simulation des systèmes many-cœurs. Le principe de la simulation native est de compiler puis exécuter la quasi totalité de la pile logicielle directement sur la machine hôte tout en communiquant avec des modèles réalistes des composants matériels de l’architecture cible, permettant ainsi de raccourcir les temps de simulation. La simulation native est beau-coup plus rapide qu’un ISS mais elle ne prend pas en compte les aspects non-fonctionnels,tel que le temps d’exécution, dépendant de l’architecture matérielle réelle, ce qui empêche de faire des estimations de performance du logiciel.Ceci dresse le contexte des travaux menés dans cette thèse qui se focalisent sur la simulation native et s’articulent autour de deux contributions majeures. La première s’attaque à l’introduction d’informations non-fonctionnelles dans la représentation intermédiaire (IR)du compilateur. L’insertion précise de telles informations dans le modèle fonctionnel est réalisée grâce à un algorithme dont l’objectif est de trouver des correspondances entre le code binaire cible et le code IR tout en tenant compte des optimisations faites par le compilateur. La deuxième contribution s’intéresse à la modélisation d’un cache d’instruction et d’un tampon d’instruction d’une architecture VLIW pour générer des estimations de performance précises.Ainsi, la plateforme de simulation native associée à des modèles de performance précis et à une technique d’annotation efficace permet, malgré son haut niveau d’abstraction, non seulement de vérifier le bon fonctionnement du logiciel mais aussi de fournir des estimations de performances précises en des temps de simulation raisonnables. / Modern embedded systems are endowed with a high level of parallelism and significantprocessing capabilities as they integrate hundreds of cores on a single chip communicatingthrough network on chip. The complexity of these systems and their dedicated softwareshould not be an excuse for long design cycles, even though the design space is enormousand the underlying design decisions are critical. Thus, design space exploration, hard-ware/software co-verification and performance estimation need to be conducted within areasonable amount of time and early enough in the design process to avoid any tardy de-tection of functional or performance deficiencies.Co-simulation platforms are becoming an increasingly important part in design and ver-ification steps. With instruction interpretation-based software simulation platforms beingtoo slow as they model low-level details of the target system, an alternative software sim-ulation approach known as native simulation or host-compiled simulation has gained mo-mentum this past decade. Native simulation consists of compiling the embedded softwareto the host binary format and executing it directly on the host machine. However, this tech-nique fails to reflect the performance of the embedded software and its actual interactionwith the target hardware. So, the speedup gained by native simulation comes at a price,which is the absence of non-functional information (such as time and energy) needed for es-timating the performance of the entire system and ensuring its proper functioning. Withoutsuch information, native simulation approaches are limited to functional validation.Yielding accurate estimates entails the integration of high-level abstract models thatmimic the behavior of target-specific micro-architectural components in the simulation plat-form and the accurate placement of the obtained non-functional information in the high-level code. Back-annotating non-functional information at the right place requires a map-ping between the binary instructions and the high-level code statements, which can be chal-lenging particularly when compiler optimizations are enabled.In this thesis, we propose an annotation framework working at the compiler interme-diate representation level to accurately annotate performance metrics extracted from thebinary code, thanks to a dedicated mapping algorithm. This mapping algorithm is furtherenhanced to deal with aggressive compiler optimizations, such as loop unrolling, that radi-cally alter the structure of the code. Our target architecture being a VLIW processor, we alsomodel at a high level its instruction buffer to faithfully reproduce its timing behavior.The experiments we conducted to validate our mapping algorithm and component mod-els yielded accurate results and high simulation speed compared to a cycle accurate ISS ofthe target platform.
9

TIREX : une représentation textuelle intermédiaire pour un environnement d'exécution virtuel, échanger des informations du compilateur et d'analyse du programme / TIREX : A textual target-level intermediate representation for virtual execution environment, compiler information exchange and program analysis

Pietrek, Artur 02 October 2012 (has links)
Certains environnements ont besoin de plusieurs compilateurs, par exemple un pour le système d'exploitation, supportant la norme C/C++ complète, et l'autre pour les applications, qui supporte éventuellement un sous-ensemble de la norme, mais capable de fournir plus de performance. Le maintien de plusieurs compilateurs pour une plateforme cible représente un effort considérable. Il est donc plus facile d'implémenter et de maintenir un seul outil responsable des optimisations particulières au processeur ciblé. Il nous faut alors un moyen de relier ces compilateurs à l'optimiseur, de préférence, en gardant au passage certaines structures de données internes aux compilateurs qui, soit prendraient du temps, soit seraient impossible à reconstruire à partir du code assembleur par exemple. Dans cette thèse, nous introduisons Tirex, une représentation textuelle intermédiaire pour échanger des informations de bas niveau, déjà dépendantes de la cible, entre les compilateurs, les optimiseurs et les autres outils de la chaîne de compilation. Notre représentation contient un flot d'instructions du processeur cible, mais garde également la structure explicite du programme et supporte la forme SSA (Static Single Assignment). Elle est facilement extensible et très flexible, ce qui permet de transmettre toute donnée jugée importante à l'optimiseur. Nous construisons Tirex par extension de MinIR, une représentation intermédiaire elle-même basée sur un encodage YAML des structures du compilateur. Nos extensions de Tirex comprennent: l'abaissement de la représentation au niveau du processeur cible, la conservation du flot de données du programme, ainsi que l'ajout d'informations sur les structures de boucles et les dépendances de données. Nous montrons que Tirex est polyvalent et peut être utilisé dans une variété d'applications différentes, comme par exemple un environnement d'exécution virtuel (VEE),et fournit une base forte pour un environnement d'analyse du programme. Dans le cadre d'un VEE, nous présentons un interprèteur de la forme SSA et un compilateur just-in-time (JIT). Nous montrons comment l'interprétation d'une représentation au niveau du processeur cible élimine la plupart des problèmes liés à l'exécution en mode mixte. Nous explorons également les questions liées à l'interprétation efficace d'une représentation de programme sous la forme SSA. / Some environments require several compilers, for instance one for the operating system, supporting the full C/C++ norm, and one for the applications, potentially supporting less but able to derive more performance. Maintaining different compilers for a target requires considerable effort, thus it is easier to implement and maintain target-dependent optimizations in a single, external tool. This requires a way of connecting these compilers with the target-dependent optimizer, preferably passing along some internal compiler data structures that would be time-consuming, difficult or even impossible to reconstruct from assembly language for instance. In this thesis we introduce Tirex, a Textual Intermediate Representation for EXchanging target-level information between compilers, optimizers an different tools in the compilation toolchain. Our intermediate representation contains an instruction stream of the target processor, but still keeps the explicit program structure and supports the SSA form(Static Single Assignment). It is easily extensible and highly flexible, which allows any data to be passed for the purpose of the optimizer. We build Tirex by extending the existing Minimalist Intermediate Representation (MinIR), itself expressed as a YAML textual encoding of compiler structures. Our extensions in Tirex include: lowering the representation to a target level, conserving the program data stream, adding loop scoped information and data dependencies. Tirex is currently produced by the Open64 and the LLVM compilers, with a GCC producer under work. It is consumed by the Linear Assembly Optimizer (LAO), a specialized, target-specific, code optimizer. We show that Tirex is versatile and can be used in a variety of different applications, such as a virtual execution environment (VEE), and provides strong basis for a program analysis framework. As part of the VEE, we present an interpreter for a Static Single Assignment (SSA) form and a just-in-time (JIT) compiler. We show how interpreting a target-level representation eliminates most of the complexities of mixed-mode execution. We also explore the issues related to efficiently interpreting a SSA form program representation.
10

Efficient search-based strategies for polyhedral compilation : algorithms and experience in a production compiler / Stratégies exploratoires efficaces pour la compilation polyédrique : algorithmes et expérience dans un compilateur de production

Trifunovic, Konrad 04 July 2011 (has links)
Une pression accrue s'exerce sur les compilateurs pour mettre en œuvre des transformations de programmes de plus en plus complexes délivrant le potentiel de performance des processeurs multicœurs et des accélérateurs hétérogènes. L'espace de recherche des optimisations de programmes possibles est gigantesque est manque de structure. La recherche de la meilleure transformation, qui inclut la prédiction des gains estimés de performance offerts par cette transformation, constitue le problème le plus difficiles pour les compilateurs optimisants modernes. Nous avons choisi de nous concentrer sur les transformations de boucles et sur leur automatisation, exprimées dans le modèle polyédrique. Les méthodes d'optimisation de programmes dans le modèle polyédrique se répartissent grossièrement en deux classes. La première repose sur l'optimisation linéaire d'une fonction de analytique de coût. La deuxième classe de méthodes met en œuvre une recherche itérative. La première approche est rapide, mais elle est facilement mise en défaut en ce qui concerne la découverte de la solution optimale. L'approche itérative est plus précise, mais le temps de compilation peut devenir prohibitif. Cette thèse contribue une approche nouvelle de la recherche itérative de transformations de programmes dans le modèle polyédrique. La nouvelle méthode proposée possède la précision et la capacité effective à extraire des transformations profitables des méthodes itératives, tout en en minimisant les faiblesses. Notre approche repose sur l'évaluation systématique d'une fonction de coût et de prédiction de performances non-linéaire. Par ailleurs, la parallélisation automatique dans le modèle polyédrique est actuellement dominée par des outils de compilation source-à-source. Nous avons choisi au contraire d'implémenter nos techniques dans la plateforme GCC, en opérant sur une représentation de code de bas niveau, à trois adresses. Nous montrons que le niveau d'abstraction de la représentation intermédiaire choisie engendre des difficultés de passage à l'échelle, et nous montrons comment les surmonter. À l'inverse, nous montrons qu'une représentation intermédiaire de bas niveau ouvre de nouveaux degrés de liberté, bénéficiant à notre stratégie itérative de recherche de transformations, et à la compilation polyédrique de manière générale. / In order to take the performance advantages of the current multicore and heterogeneous architectures the compilers are required to perform more and more complex program transformations. The search space of the possible program optimizations is huge and unstructured. Selecting the best transformation and predicting the potential performance benefits of that transformation is the major problem in today's optimizing compilers. The promising approach to handling the program optimizations is to focus on the automatic loop optimizations expressed in the polyhedral model. The current approaches for optimizing programs in the polyhedral model broadly fall into two classes. The first class of the methods is based on the linear optimization of the analytical cost function. The second class is based on the exhaustive iterative search. While the first approach is fast, it can easily miss the optimal solution. The iterative approach is more precise, but its running time might be prohibitively expensive. In this thesis we present a novel search-based approach to program transformations in the polyhedral model. The new method combines the benefits - effectiveness and precision - of the current approaches, while it tries to minimize their drawbacks. Our approach is based on enumerating the evaluations of the precise, nonlinear performance predicting cost-function. The current practice is to use the polyhedral model in the context of source-to-source compilers. We have implemented our techniques in a GCC framework that is based on the low level three address code representation. We show that the chosen level of abstraction for the intermediate representation poses scalability challenges, and we show the ways to overcome those problems. On the other hand, it is shown that the low level IR abstraction opens new degrees of freedom that are beneficial for the search-based transformation strategies and for the polyhedral compilation in general.

Page generated in 0.1484 seconds