583 resultados para optimising compiler
Resumo:
A software that includes both Stochastic and Molecular Dynamics procedures has been developed with the aim of visualizing the Stern-Volmer kinetic mechanism of dynamic luminescence quenching. The software allows the student to easily simulate and graphically visualize the molecular collisions, the molecular speed distributions, the luminescence decay curves, and the Stern-Volmer graphs. The software named "SternVolmer" is written for the FreeBASIC compiler and can be applied to dynamic systems where luminescent molecules, during their excited state lifetimes, are able to collide with quenching molecules (collisional quenching). The good agreement found between the simulations and the expected results shows that this software can be used as an effective teaching aid for the study of luminescence and kinetic decay of excited states.
Resumo:
Antibodies are natural binding proteins produced in vertebrates as a response to invading pathogens and foreign substances. Because of their capability for tight and specific binding, antibodies have found use as binding reagents in research and diagnostics. Properties of cloned recombinant antibodies can be further improved by means of in vitro evolution, combining mutagenesis with subsequent phage display selection. It is also possible to isolate entirely new antibodies from vast naïve or synthetic antibody libraries by phage display. In this study, library techniques and phage display selection were applied in order to optimise binding scaffolds and antigen recognition of antibodies, and to evolve new and improved bioaffinity reagents. Antibody libraries were generated by random and targeted mutagenesis. Expression and stability were mainly optimised by the random methods whereas targeted randomisation of the binding site residues was used for optimising the binding properties. Trinucleotide mutagenesis allowed design of defined randomisation patterns for a synthetic antibody library. Improved clones were selected by phage display. Capture by a specific anti- DHPS antibody was exploited in the selection of improved phage display of DHPS. Efficient selection for stability was established by combining phage display selection with denaturation under reducing conditions. Broad-specific binding of a generic anti-sulfonamide antibody was improved by selection with one of the weakest binding sulfonamides. In addition, p9 based phage display was studied in affinity selection from the synthetic library. A TIM barrel protein DHPS was engineered for efficient phage display by combining cysteinereplacement with random mutagenesis. The resulting clone allows use of phage display in further engineering of DHPS and possibly use as an alternative-binding scaffold. An anti-TSH scFv fragment, cloned from a monoclonal antibody, was engineered for improved stability to better suite an immunoassay. The improved scFv tolerates 8 – 9 °C higher temperature than the parental scFv and should have sufficient stability to be used in an immunoanalyser with incubation at 36 °C. The anti-TSH scFv fragment was compared with the corresponding Fab fragment and the parental monoclonal antibody as a capturing reagent in a rapid 5-min immunoassay for TSH. The scFv fragment provided some benefits over the conventionally used Mab in anayte-binding capacity and assay kinetics. However, the recombinant Fab fragment, which had similar kinetics to the scFv, provided a more sensitive and reliable assay than the scFv. Another cloned scFv fragment was engineered in order to improve broad-specific recognition of sulfonamides. The improved antibody detects different sulfonamides at concentrations below the maximum residue limit (100 μg/kg in EU and USA) and allows simultaneous screening of different sulfonamide drug residues. Finally, a synthetic antibody library was constructed and new antibodies were generated and affinity matured entirely in vitro. These results illuminate the possibilities of phage display and antibody engineering for generation and optimisation of binding reagents in vitro and indicate the potential of recombinant antibodies as affinity reagents in immunoassays.
Resumo:
Statistical analyses of measurements that can be described by statistical models are of essence in astronomy and in scientific inquiry in general. The sensitivity of such analyses, modelling approaches, and the consequent predictions, is sometimes highly dependent on the exact techniques applied, and improvements therein can result in significantly better understanding of the observed system of interest. Particularly, optimising the sensitivity of statistical techniques in detecting the faint signatures of low-mass planets orbiting the nearby stars is, together with improvements in instrumentation, essential in estimating the properties of the population of such planets, and in the race to detect Earth-analogs, i.e. planets that could support liquid water and, perhaps, life on their surfaces. We review the developments in Bayesian statistical techniques applicable to detections planets orbiting nearby stars and astronomical data analysis problems in general. We also discuss these techniques and demonstrate their usefulness by using various examples and detailed descriptions of the respective mathematics involved. We demonstrate the practical aspects of Bayesian statistical techniques by describing several algorithms and numerical techniques, as well as theoretical constructions, in the estimation of model parameters and in hypothesis testing. We also apply these algorithms to Doppler measurements of nearby stars to show how they can be used in practice to obtain as much information from the noisy data as possible. Bayesian statistical techniques are powerful tools in analysing and interpreting noisy data and should be preferred in practice whenever computational limitations are not too restrictive.
Resumo:
With the shift towards many-core computer architectures, dataflow programming has been proposed as one potential solution for producing software that scales to a varying number of processor cores. Programming for parallel architectures is considered difficult as the current popular programming languages are inherently sequential and introducing parallelism is typically up to the programmer. Dataflow, however, is inherently parallel, describing an application as a directed graph, where nodes represent calculations and edges represent a data dependency in form of a queue. These queues are the only allowed communication between the nodes, making the dependencies between the nodes explicit and thereby also the parallelism. Once a node have the su cient inputs available, the node can, independently of any other node, perform calculations, consume inputs, and produce outputs. Data ow models have existed for several decades and have become popular for describing signal processing applications as the graph representation is a very natural representation within this eld. Digital lters are typically described with boxes and arrows also in textbooks. Data ow is also becoming more interesting in other domains, and in principle, any application working on an information stream ts the dataflow paradigm. Such applications are, among others, network protocols, cryptography, and multimedia applications. As an example, the MPEG group standardized a dataflow language called RVC-CAL to be use within reconfigurable video coding. Describing a video coder as a data ow network instead of with conventional programming languages, makes the coder more readable as it describes how the video dataflows through the different coding tools. While dataflow provides an intuitive representation for many applications, it also introduces some new problems that need to be solved in order for data ow to be more widely used. The explicit parallelism of a dataflow program is descriptive and enables an improved utilization of available processing units, however, the independent nodes also implies that some kind of scheduling is required. The need for efficient scheduling becomes even more evident when the number of nodes is larger than the number of processing units and several nodes are running concurrently on one processor core. There exist several data ow models of computation, with different trade-offs between expressiveness and analyzability. These vary from rather restricted but statically schedulable, with minimal scheduling overhead, to dynamic where each ring requires a ring rule to evaluated. The model used in this work, namely RVC-CAL, is a very expressive language, and in the general case it requires dynamic scheduling, however, the strong encapsulation of dataflow nodes enables analysis and the scheduling overhead can be reduced by using quasi-static, or piecewise static, scheduling techniques. The scheduling problem is concerned with nding the few scheduling decisions that must be run-time, while most decisions are pre-calculated. The result is then an, as small as possible, set of static schedules that are dynamically scheduled. To identify these dynamic decisions and to find the concrete schedules, this thesis shows how quasi-static scheduling can be represented as a model checking problem. This involves identifying the relevant information to generate a minimal but complete model to be used for model checking. The model must describe everything that may affect scheduling of the application while omitting everything else in order to avoid state space explosion. This kind of simplification is necessary to make the state space analysis feasible. For the model checker to nd the actual schedules, a set of scheduling strategies are de ned which are able to produce quasi-static schedulers for a wide range of applications. The results of this work show that actor composition with quasi-static scheduling can be used to transform data ow programs to t many different computer architecture with different type and number of cores. This in turn, enables dataflow to provide a more platform independent representation as one application can be fitted to a specific processor architecture without changing the actual program representation. Instead, the program representation is in the context of design space exploration optimized by the development tools to fit the target platform. This work focuses on representing the dataflow scheduling problem as a model checking problem and is implemented as part of a compiler infrastructure. The thesis also presents experimental results as evidence of the usefulness of the approach.
Resumo:
Contient : 1° Cahiers de la noblesse aux États généraux de 1614. Même contenu qu'en l'article 2 du n° 3715 ; 2° « Extraict du cahier general du tiers estat » ; 3° « Extraict pris tous les jours de ce qui se deliberoit en la chambre pour rediger et compiler le cayer general de la noblesse »
Resumo:
Le nœud auriculoventriculaire (AV) joue un rôle vital dans le cœur normal et pathologique. Il connecte les oreillettes aux ventricules et, grâce à sa conduction lente, génère un délai entre les contractions auriculaire et ventriculaire permettant d’optimiser le pompage sanguin. Sa conduction lente et sa longue période réfractaire font du nœud AV un filtre d’impulsions auriculaires lors de tachyarythmies assurant ainsi une fréquence ventriculaire plus lente favorable au débit cardiaque. L’optimisation de ce filtrage est une cible dans le traitement de ces arythmies. Malgré ce rôle vital et de nombreuses études, le nœud AV demeure l’objet de plusieurs controverses qui en rendent la compréhension laborieuse. Nos études expérimentales sur des préparations isolées de cœurs de lapin visent à apporter des solutions à certains des problèmes qui limitent la compréhension des propriétés fréquentielles du nœud AV. Le premier problème concerne la définition de la propriété de récupération nodale. On s’accorde généralement sur la dépendance du temps de conduction nodale (intervalle auriculo-Hissien, AH) du temps de récupération qui le précède mais un débat presque centenaire persiste sur la façon de mesurer ce temps de récupération. Selon que l’on utilise à cette fin la longueur du cycle auriculaire (AA) ou l’intervalle His-auriculaire précédent (HA), la même réponse nodale montre des caractéristiques différentes, un paradoxe à ce jour inexpliqué. Le temps de conduction nodale augmente aussi avec le degré et la durée d'une fréquence rapide, un phénomène appelé fatigue. Or, les caractéristiques de la fatigue mesurée varient avec l’indice de récupération utilisé (AA vs. HA). De plus, une troisième propriété appelée facilitation qui entraîne un raccourcissement du temps de conduction diffère aussi avec l’indice de récupération utilisé. Pour établir l’origine de ce problème, nous avons déterminé les différences entre les courbes de récupération (AH compilé en fonction du AA ou HA) pour 30 états fonctionnels nodaux différents. Ces conditions étaient obtenues à l’aide de protocoles permettant la variation du cycle de base (BCL) et du cycle prétest (PTCL), deux paramètres connus pour altérer la fonction nodale. Nous avons pu établir que pour chaque état fonctionnel, la forme de la courbe de récupération et le niveau de fatigue étaient les mêmes pour les deux indices de récupération. Ceci s’applique aussi aux données obtenues à des BCL et PTCL égaux comme dans les protocoles de stimulation prématurée conventionnels couramment utilisés. Nos résultats ont établi pour la première fois que les propriétés nodales de récupération et de fatigue sont indépendantes de l’indice de récupération utilisé. Nos données montrent aussi que les différences entre les courbes de récupération en fonction de l’indice utilisé proviennent d’effets associés aux variations du PTCL. Notre deuxième étude établit à partir des mêmes données pourquoi les variations du PTCL altèrent différemment les courbes de récupération selon l’indice utilisé. Nous avons démontré que ces différences augmentaient en proportion directe avec l’augmentation du temps de conduction au battement prétest. Cette augmentation cause un déplacement systématique de la courbe construite avec l’intervalle AA vers la droite et de celle construite avec l’intervalle HA vers la gauche. Ce résultat met en évidence l’importance de tenir compte des changements du temps de conduction prétest dans l’évaluation de la fonction nodale, un paramètre négligé dans la plupart des études. Ce résultat montre aussi que chacun des deux indices a des limites dans sa capacité d’évaluer le temps de récupération nodale réel lorsque le temps de conduction prétest varie. Lorsque ces limites sont ignorées, comme c’est habituellement le cas, elles entraînent un biais dans l’évaluation des effets de fatigue et de facilitation. Une autre grande difficulté dans l’évaluation des propriétés fréquentielles du nœud AV concerne son état réfractaire. Deux indices sont utilisés pour évaluer la durée de la période réfractaire nodale. Le premier est la période réfractaire efficace (ERPN) définie comme l’intervalle AA le plus long qui n’est pas conduit par le nœud. Le deuxième est la période réfractaire fonctionnelle (FRPN) qui correspond à l’intervalle minimum entre deux activations mesurées à la sortie du nœud. Paradoxalement et pour des raisons obscures, l’ERPN augmente alors que la FRPN diminue avec l’augmentation de la fréquence cardiaque. De plus, ces effets varient grandement avec les sujets, les espèces et l’âge. À partir des mêmes données que pour les deux autres études, nous avons cherché dans la troisième étude l’origine des variations fréquentielles de l’ERPN et de la FRPN. Le raccourcissement du BCL prolonge l’ERPN mais n’affecte pas la FRPN. L’allongement de l’ERPN provient principalement d’un allongement du temps de conduction prétest. Un PTCL court en comparaison avec un BCL court allonge encore plus substantiellement le temps de conduction prétest mais raccourcit en même temps l’intervalle His-auriculaire, ces deux effets opposés s’additionnent pour produire un allongement net de l’ERPN. Le raccourcissement de l’intervalle His-auriculaire par le PTCL court est aussi entièrement responsable pour le raccourcissement de la FRPN. Nous avons aussi établi que, lorsque la composante du temps de conduction prétest est retirée de l’ERPN, un lien linéaire existe entre la FRPN et l’ERPN à cause de leur dépendance commune de l’intervalle His-auriculaire. Le raccourcissement combiné du BCL et du PTCL produit des effets nets prévisibles à partir de leurs effets individuels. Ces effets reproduisent ceux obtenus lors de protocoles prématurés conventionnels. Ces observations supportent un nouveau schème fonctionnel des variations fréquentielles de l’ERPN et de la FRPN à partir des effets distincts du BCL et du PTCL. Elles établissent aussi un nouveau lien entre les variations fréquentielles de l’ERPN et de la FRPN. En conclusion, la modulation fréquentielle de la fonction du nœud AV provient de la combinaison d’effets concurrents cumulatifs liés au cycle de base et non-cumulatifs liés au cycle prétest. Ces effets peuvent être interprétés de façon consistante indépendamment de l’indice de récupération en tenant compte des changements du temps de conduction au battement prétest. Les effets fréquentiels disparates sur l’ERPN et la FRPN sont aussi grandement liés aux changements du temps de conduction prétest. Lorsque l’analyse tient compte de ce facteur, l’ERPN et la FRPN montrent des variations parallèles fortement liées à celles de l’intervalle His-auriculaire. Le nouveau schème fonctionnel des propriétés fréquentielles du nœud AV supporté par nos données aidera à mieux cibler les études sur les mécanismes cellulaires contrôlant la modulation fréquentielle nodale. Nos données pourraient aider à l’interprétation et au contrôle des réponses nodales diverses associées aux tachyarythmies supraventriculaires et à leur traitement pharmacologique. En bref, nos travaux supportent une compréhension factuelle améliorée du comportement fréquentiel du nœud AV, un domaine aux applications multiples en rythmologie cardiaque.
Resumo:
Dans le domaine des neurosciences computationnelles, l'hypothèse a été émise que le système visuel, depuis la rétine et jusqu'au cortex visuel primaire au moins, ajuste continuellement un modèle probabiliste avec des variables latentes, à son flux de perceptions. Ni le modèle exact, ni la méthode exacte utilisée pour l'ajustement ne sont connus, mais les algorithmes existants qui permettent l'ajustement de tels modèles ont besoin de faire une estimation conditionnelle des variables latentes. Cela nous peut nous aider à comprendre pourquoi le système visuel pourrait ajuster un tel modèle; si le modèle est approprié, ces estimé conditionnels peuvent aussi former une excellente représentation, qui permettent d'analyser le contenu sémantique des images perçues. Le travail présenté ici utilise la performance en classification d'images (discrimination entre des types d'objets communs) comme base pour comparer des modèles du système visuel, et des algorithmes pour ajuster ces modèles (vus comme des densités de probabilité) à des images. Cette thèse (a) montre que des modèles basés sur les cellules complexes de l'aire visuelle V1 généralisent mieux à partir d'exemples d'entraînement étiquetés que les réseaux de neurones conventionnels, dont les unités cachées sont plus semblables aux cellules simples de V1; (b) présente une nouvelle interprétation des modèles du système visuels basés sur des cellules complexes, comme distributions de probabilités, ainsi que de nouveaux algorithmes pour les ajuster à des données; et (c) montre que ces modèles forment des représentations qui sont meilleures pour la classification d'images, après avoir été entraînés comme des modèles de probabilités. Deux innovations techniques additionnelles, qui ont rendu ce travail possible, sont également décrites : un algorithme de recherche aléatoire pour sélectionner des hyper-paramètres, et un compilateur pour des expressions mathématiques matricielles, qui peut optimiser ces expressions pour processeur central (CPU) et graphique (GPU).
Criteria for the validation of specialized verb equivalents : application in bilingual terminography
Resumo:
Multilingual terminological resources do not always include valid equivalents of legal terms for two main reasons. Firstly, legal systems can differ from one language community to another and even from one country to another because each has its own history and traditions. As a result, the non-isomorphism between legal and linguistic systems may render the identification of equivalents a particularly challenging task. Secondly, by focusing primarily on the definition of equivalence, a notion widely discussed in translation but not in terminology, the literature does not offer solid and systematic methodologies for assigning terminological equivalents. As a result, there is a lack of criteria to guide both terminologists and translators in the search and validation of equivalent terms. This problem is even more evident in the case of predicative units, such as verbs. Although some terminologists (L‘Homme 1998; Lerat 2002; Lorente 2007) have worked on specialized verbs, terminological equivalence between units that belong to this part of speech would benefit from a thorough study. By proposing a novel methodology to assign the equivalents of specialized verbs, this research aims at defining validation criteria for this kind of predicative units, so as to contribute to a better understanding of the phenomenon of terminological equivalence as well as to the development of multilingual terminography in general, and to the development of legal terminography, in particular. The study uses a Portuguese-English comparable corpus that consists of a single genre of texts, i.e. Supreme Court judgments, from which 100 Portuguese and 100 English specialized verbs were selected. The description of the verbs is based on the theory of Frame Semantics (Fillmore 1976, 1977, 1982, 1985; Fillmore and Atkins 1992), on the FrameNet methodology (Ruppenhofer et al. 2010), as well as on the methodology for compiling specialized lexical resources, such as DiCoInfo (L‘Homme 2008), developed in the Observatoire de linguistique Sens-Texte at the Université de Montréal. The research reviews contributions that have adopted the same theoretical and methodological framework to the compilation of lexical resources and proposes adaptations to the specific objectives of the project. In contrast to the top-down approach adopted by FrameNet lexicographers, the approach described here is bottom-up, i.e. verbs are first analyzed and then grouped into frames for each language separately. Specialized verbs are said to evoke a semantic frame, a sort of conceptual scenario in which a number of mandatory elements (core Frame Elements) play specific roles (e.g. ARGUER, JUDGE, LAW), but specialized verbs are often accompanied by other optional information (non-core Frame Elements), such as the criteria and reasons used by the judge to reach a decision (statutes, codes, previous decisions). The information concerning the semantic frame that each verb evokes was encoded in an xml editor and about twenty contexts illustrating the specific way each specialized verb evokes a given frame were semantically and syntactically annotated. The labels attributed to each semantic frame (e.g. [Compliance], [Verdict]) were used to group together certain synonyms, antonyms as well as equivalent terms. The research identified 165 pairs of candidate equivalents among the 200 Portuguese and English terms that were grouped together into 76 frames. 71% of the pairs of equivalents were considered full equivalents because not only do the verbs evoke the same conceptual scenario but their actantial structures, the linguistic realizations of the actants and their syntactic patterns were similar. 29% of the pairs of equivalents did not entirely meet these criteria and were considered partial equivalents. Reasons for partial equivalence are provided along with illustrative examples. Finally, the study describes the semasiological and onomasiological entry points that JuriDiCo, the bilingual lexical resource compiled during the project, offers to future users.
Resumo:
Dans le but d’optimiser la représentation en mémoire des enregistrements Scheme dans le compilateur Gambit, nous avons introduit dans celui-ci un système d’annotations de type et des vecteurs contenant une représentation abrégée des enregistrements. Ces derniers omettent la référence vers le descripteur de type et l’entête habituellement présents sur chaque enregistrement et utilisent plutôt un arbre de typage couvrant toute la mémoire pour retrouver le vecteur contenant une référence. L’implémentation de ces nouvelles fonctionnalités se fait par le biais de changements au runtime de Gambit. Nous introduisons de nouvelles primitives au langage et modifions l’architecture existante pour gérer correctement les nouveaux types de données. On doit modifier le garbage collector pour prendre en compte des enregistrements contenants des valeurs hétérogènes à alignements irréguliers, et l’existence de références contenues dans d’autres objets. La gestion de l’arbre de typage doit aussi être faite automatiquement. Nous conduisons ensuite une série de tests de performance visant à déterminer si des gains sont possibles avec ces nouvelles primitives. On constate une amélioration majeure de performance au niveau de l’allocation et du comportement du gc pour les enregistrements typés de grande taille et des vecteurs d’enregistrements typés ou non. De légers surcoûts sont toutefois encourus lors des accès aux champs et, dans le cas des vecteurs d’enregistrements, au descripteur de type.
Resumo:
Rampant increases in oil prices and detrimental effects of fossil fuels on the environment have been the main impetus for the development of environmentally friendly and sustainable energy sources. Amongst the many possibilities, microalgae have been proposed as a new alternative energy source to fossil fuels, as their growth is both sustainable and ecologically safe. By definition, microalgae are unicellular photosynthetic microorganisms containing chlorophyll a. These organisms are capable of producing large quantities of oils, surpassing that of traditional oil-seed crops, which can be transformed, through chemical processes, into biofuels such as biodiesel or bio-gasoline. Thus, recent research has gone into discovering high lipid producing algal strains, optimising growth media for increased lipid production and developing metabolic engineering to make microalgae a source of biofuel that is competitive to more traditional sources of biofuel and even to fossil fuel. In this context, the research reported here focused on using a mixotrophic growth mode as a way to increase lipid production for certain strains of microalgae. In addition, nitrogen starvation combined with mixotrophy was studied to analyse its effects on lipid production. Mixotrophy is the parallel usage of two trophic modes, in our case photoautotrophy and heterotrophy. Consequently, 12 algal strains were screened for mixotrophic growth, using glycerol as a carbon source. Glycerol is a waste product of the current biodiesel industry; it is a cheap and abundant carbon source present in many metabolic pathways. From this initial screening, several strains were chosen for subsequent experiments involving nitrogen starvation. Nitrogen starvation has been shown to induce lipid accumulation. The results obtained show that a mixotrophic growth mode, using glycerol as a carbon source, enhances lipid production for certain strains. Moreover, lipid enhancement was shown for nitrogen starvation combined with mixotrophic growth mode. This was dependant on time spent under nitrogen starvation and on initial concentrations of the nitrogen source.
Resumo:
Ce mémoire a pour thèse que les fonctions devraient être transparentes lors de la phase de métaprogrammation. En effet, la métaprogrammation se veut une possibilité pour le programmeur d’étendre le compilateur. Or, dans un style de programmation fonctionnelle, la logique du programme se retrouve dans les définitions des diverses fonctions le composant. Puisque les fonctions sont généralement opaques, l’impossibilité d’accéder à cette logique limite les applications possibles de la phase de métaprogrammation. Nous allons illustrer les avantages que procurent les fonctions transparentes pour la métaprogrammation. Nous donnerons notamment l’exemple du calcul symbolique et un exemple de nouvelles optimisations désormais possibles. Nous illustrerons également que la transparence des fonctions permet de faire le pont entre les datatypes du programme et les fonctions. Nous allons également étudier ce qu'implique la présence de fonctions transparentes au sein d'un langage. Nous nous concentrerons sur les aspects reliés à l'implantation de ces dernières, aux performances et à la facilité d'utilisation. Nous illustrerons nos propos avec le langage Abitbol, un langage créé sur mesure pour la métaprogrammation.
Resumo:
Embedded systems are usually designed for a single or a specified set of tasks. This specificity means the system design as well as its hardware/software development can be highly optimized. Embedded software must meet the requirements such as high reliability operation on resource-constrained platforms, real time constraints and rapid development. This necessitates the adoption of static machine codes analysis tools running on a host machine for the validation and optimization of embedded system codes, which can help meet all of these goals. This could significantly augment the software quality and is still a challenging field.Embedded systems are usually designed for a single or a specified set of tasks. This specificity means the system design as well as its hardware/software development can be highly optimized. Embedded software must meet the requirements such as high reliability operation on resource-constrained platforms, real time constraints and rapid development. This necessitates the adoption of static machine codes analysis tools running on a host machine for the validation and optimization of embedded system codes, which can help meet all of these goals. This could significantly augment the software quality and is still a challenging field.Embedded systems are usually designed for a single or a specified set of tasks. This specificity means the system design as well as its hardware/software development can be highly optimized. Embedded software must meet the requirements such as high reliability operation on resource-constrained platforms, real time constraints and rapid development. This necessitates the adoption of static machine codes analysis tools running on a host machine for the validation and optimization of embedded system codes, which can help meet all of these goals. This could significantly augment the software quality and is still a challenging field.Embedded systems are usually designed for a single or a specified set of tasks. This specificity means the system design as well as its hardware/software development can be highly optimized. Embedded software must meet the requirements such as high reliability operation on resource-constrained platforms, real time constraints and rapid development. This necessitates the adoption of static machine codes analysis tools running on a host machine for the validation and optimization of embedded system codes, which can help meet all of these goals. This could significantly augment the software quality and is still a challenging field.This dissertation contributes to an architecture oriented code validation, error localization and optimization technique assisting the embedded system designer in software debugging, to make it more effective at early detection of software bugs that are otherwise hard to detect, using the static analysis of machine codes. The focus of this work is to develop methods that automatically localize faults as well as optimize the code and thus improve the debugging process as well as quality of the code.Validation is done with the help of rules of inferences formulated for the target processor. The rules govern the occurrence of illegitimate/out of place instructions and code sequences for executing the computational and integrated peripheral functions. The stipulated rules are encoded in propositional logic formulae and their compliance is tested individually in all possible execution paths of the application programs. An incorrect sequence of machine code pattern is identified using slicing techniques on the control flow graph generated from the machine code.An algorithm to assist the compiler to eliminate the redundant bank switching codes and decide on optimum data allocation to banked memory resulting in minimum number of bank switching codes in embedded system software is proposed. A relation matrix and a state transition diagram formed for the active memory bank state transition corresponding to each bank selection instruction is used for the detection of redundant codes. Instances of code redundancy based on the stipulated rules for the target processor are identified.This validation and optimization tool can be integrated to the system development environment. It is a novel approach independent of compiler/assembler, applicable to a wide range of processors once appropriate rules are formulated. Program states are identified mainly with machine code pattern, which drastically reduces the state space creation contributing to an improved state-of-the-art model checking. Though the technique described is general, the implementation is architecture oriented, and hence the feasibility study is conducted on PIC16F87X microcontrollers. The proposed tool will be very useful in steering novices towards correct use of difficult microcontroller features in developing embedded systems.
Resumo:
The process of developing software that takes advantage of multiple processors is commonly referred to as parallel programming. For various reasons, this process is much harder than the sequential case. For decades, parallel programming has been a problem for a small niche only: engineers working on parallelizing mostly numerical applications in High Performance Computing. This has changed with the advent of multi-core processors in mainstream computer architectures. Parallel programming in our days becomes a problem for a much larger group of developers. The main objective of this thesis was to find ways to make parallel programming easier for them. Different aims were identified in order to reach the objective: research the state of the art of parallel programming today, improve the education of software developers about the topic, and provide programmers with powerful abstractions to make their work easier. To reach these aims, several key steps were taken. To start with, a survey was conducted among parallel programmers to find out about the state of the art. More than 250 people participated, yielding results about the parallel programming systems and languages in use, as well as about common problems with these systems. Furthermore, a study was conducted in university classes on parallel programming. It resulted in a list of frequently made mistakes that were analyzed and used to create a programmers' checklist to avoid them in the future. For programmers' education, an online resource was setup to collect experiences and knowledge in the field of parallel programming - called the Parawiki. Another key step in this direction was the creation of the Thinking Parallel weblog, where more than 50.000 readers to date have read essays on the topic. For the third aim (powerful abstractions), it was decided to concentrate on one parallel programming system: OpenMP. Its ease of use and high level of abstraction were the most important reasons for this decision. Two different research directions were pursued. The first one resulted in a parallel library called AthenaMP. It contains so-called generic components, derived from design patterns for parallel programming. These include functionality to enhance the locks provided by OpenMP, to perform operations on large amounts of data (data-parallel programming), and to enable the implementation of irregular algorithms using task pools. AthenaMP itself serves a triple role: the components are well-documented and can be used directly in programs, it enables developers to study the source code and learn from it, and it is possible for compiler writers to use it as a testing ground for their OpenMP compilers. The second research direction was targeted at changing the OpenMP specification to make the system more powerful. The main contributions here were a proposal to enable thread-cancellation and a proposal to avoid busy waiting. Both were implemented in a research compiler, shown to be useful in example applications, and proposed to the OpenMP Language Committee.
Resumo:
Software Defined Radio (SDR) hardware platforms use parallel architectures. Current concepts of developing applications (such as WLAN) for these platforms are complex, because developers describe an application with hardware-specifics that are relevant to parallelism such as mapping and scheduling. To reduce this complexity, we have developed a new programming approach for SDR applications, called Virtual Radio Engine (VRE). VRE defines a language for describing applications, and a tool chain that consists of a compiler kernel and other tools (such as a code generator) to generate executables. The thesis presents this concept, as well as describes the language and the compiler kernel that have been developed by the author. The language is hardware-independent, i.e., developers describe tasks and dependencies between them. The compiler kernel performs automatic parallelization, i.e., it is capable of transforming a hardware-independent program into a hardware-specific program by solving hardware-specifics, in particular mapping, scheduling and synchronizations. Thus, VRE simplifies programming tasks as developers do not solve hardware-specifics manually.
Resumo:
This work demonstrates how partial evaluation can be put to practical use in the domain of high-performance numerical computation. I have developed a technique for performing partial evaluation by using placeholders to propagate intermediate results. For an important class of numerical programs, a compiler based on this technique improves performance by an order of magnitude over conventional compilation techniques. I show that by eliminating inherently sequential data-structure references, partial evaluation exposes the low-level parallelism inherent in a computation. I have implemented several parallel scheduling and analysis programs that study the tradeoffs involved in the design of an architecture that can effectively utilize this parallelism. I present these results using the 9- body gravitational attraction problem as an example.