Spelling suggestions: "subject:"applied ciences"" "subject:"applied csciences""
51 |
Efficient Radiometric Signature Methods for Cognitive Radio DevicesJanuary 2011 (has links)
This thesis presents the first comprehensive study and new methods for radiometric fingerprinting of the Cognitive Radio (CR) devices. The scope of the currently available radio identification techniques is limited to a single radio adjustment. Yet, the variable nature of the CR with multiple levels of parameters and adjustments renders the radiometric fingerprinting much more complex. We introduce a new method for radiometric fingerprinting that detects the unique variations in the hardware of the reconfigurable radio by passively monitoring the radio packets. Several individual identifiers are used for extracting the unique physical characteristics of the radio, including the frequency offset, modulated phase offset, in-phase/quadrature-phase offset from the origin, and magnitude. Our method provides stable and robust identification by developing individual identifiers (classifiers) that may each be weak (i.e., incurring a high prediction error) but their committee can provide a strong classification technique. Weighted voting method is used for combining the classifiers. Our hardware implementation and experimental evaluations over multiple radios demonstrate that our weighted voting approach can identify the radios with an average of 97.7% detection probability and an average of 2.3% probability of false alarm after testing only 5 frames. The probability of detection and probability of false alarms both rapidly improve by increasing the number of test frames.
|
52 |
Experimental results and three-dimensional simulations of instabilities in a rotating lid-driven cylinderJanuary 2012 (has links)
An experimental setup for a rotating lid-driven cylinder problem is designed and constructed in the context of modeling bulk semiconductor crystal growth techniques. Details concerning construction of the experimental setup are included in the interest of reproducibility. Ultrasonic Doppler Velocimetry (UDV) is tested as a viable visualization technique for the lid-driven cylinder and experimental measurements of the flow field are compared to numerical simulations. The aspect ratio of the cylinder and the Reynolds number are the governing parameters for the problem. Experimental and computation results are presented for aspect ratio of 2.5 and Reynolds numbers up to 3000. Accurate UDV measurements of the steady, axisymmetric base flow are demonstrated for both water and a 20% glycerin-water mixture as the working fluid. The expected periodic, axisymmetric instability at Reynolds number of 3000 was unobserved by the UDV. However, related instabilities were observed at lower Reynolds numbers. Associated strengths and weaknesses of UDV for flow measurement are discussed.
|
53 |
Topological optimization of nanofiber placement in a continuumJanuary 2012 (has links)
The structural integrity and/or electrical or thermal conductivity of a component can be improved with the optimal topological placement of very high strength or very high conductivity nanofibers. This thesis presents a heuristic procedure for the estimation of the optimal location for the nanofibers based on topological optimization concepts. Previously established topological procedures for continuum-only structures and for truss-only systems are reviewed. Then, this new hybrid approach, which utilizes the continuum model as a retained ground structure, and truss structure for nanofibers, is introduced and evaluated. To initiate this new procedure, a very large number of fiber elements are generated using the material continuum's geometry and then embedded into the component. A finite element method (FEM) program will analyze the structure. Post processing determines which fibers are the least necessary, and deletes them in an iterative process until the desired volume fraction of nanomaterials is reached, leaving only the vital fibers. This procedure is illustrated with several different example geometries and compared to bounding cases from other topological optimization approaches.
|
54 |
A Bayesian machine learning system for recognizing group behaviourYu, Shen January 2009 (has links)
Automated visual surveillance is one of the most actively researched areas in the past decade. Although current behaviour recognition systems provide us with a good understanding on the behaviour of individual moving objects present in an observed scene, they are not able to efficiently recognize the behaviour of groups formed by large numbers of moving objects. In this thesis, we present a HMM-based group behaviour recognition system which is capable of recognizing group behaviours effectively and efficiently. In our approach, we generate synthetic data for the training and validation of our behaviour recognition system. In addition, we use a single feature vector to represent the group dynamics, instead of using one feature vector for each pairwise interaction. Experimental results show accurate classification for both real-life data and simulated data from Lee's dataset. Therefore, we conclude that the proposed approach is a viable and accurate technique to perform group behaviour recognition in both simulated environment and real-life situations. Moreover, the high accuracy of the classification results obtained on real-life data, when only synthetic data was used for the training, suggests that it is possible to develop group behaviour models using synthetic data alone. / La surveillance visuelle automatisée est un domaine de recherche parmi les plus actifs au cours de la dernière décennie. Bien que les systèmes actuels de reconnaissance des comportements nous fournissent une bonne compréhension sur le comportement des objets en mouvement dans une scène observée, ils ne sont pas en mesure de reconnaître efficacement le comportement de groupes formés de plusieurs objets en mouvement. Dans cette mémoire, nous présentons un système de reconnaissance des comportements de groupes basé sur le modèle de Markov caché (MMC). Notre système est capable de reconnaître les comportements de groupe de façon efficace et efficiente. Dans notre approche, nous générons des données synthétiques pour former et valider notre système de reconnaissance des comportements. De plus, nous utilisons un vecteur caractéristique pour représenter la dynamique d'un groupe au lieu d'utiliser un vecteur pour chaque interaction entre deux objets en mouvement. Les résultats expérimentaux montrent une classification précise pour les données réelles et simulées utilisant la base de données de Lee. Par conséquent, nous concluons que l'approche proposée est une solution viable et une technique précise pour effectuer la reconnaissance des comportements de groupes dans un environnement simulé et dans des situations de la vie courante. Les résultats démontrent aussi qu'en utilisant uniquement des données synthétiques pour le former, le système classe avec une grande précision les comportements issues de situations réelles. Cela suggère qu'il est possible de développer des modèles de comportement de groupe en utilisant seulement les don
|
55 |
Optimal sampling rate assignment with dynamic route selection for real-time wireless sensor networksShu, Weihuan January 2009 (has links)
The allocation of computation and communication resources in a manner that optimizes aggregate system performance is a crucial aspect of system management. Wireless sensor network poses new challenges due to the resource constraints and real-time requirements. Existing work has dealt with the real-time sampling rate assignment problem, under single processor case and network case with static routing environment. For wireless sensor networks, in order to achieve better overall network performance, routing should be considered together with the rate assignments of individual flows. In this thesis, we address the problem of optimizing sampling rates with dynamic route selection for wireless sensor networks. We model the problem as a constrained optimization problem and solve it under the Network Utility Maximization framework. Based on the primal-dual method and dual decomposition technique, we design a distributed algorithm that achieves the optimal global network utility considering both dynamic route decision and rate assignment. Extensive simulations have been conducted to demonstrate the efficiency and efficacy of our proposed solutions. / L'attribution de calcul et de la communication ressources d'une mani`ere qui optimise les performances du syst`eme global est un aspect crucial de la gestion du syst`eme. R´eseau de capteurs sans fil pose de nouveaux d´efis en raison de la p´enurie de ressources et en temps r´eel. Travaux existants a traite distribution temps-reel probl`eme de taux d'´echantillonnage, dans un seul processeur cas et r´eseau cas de routage environment statique. Pour les r´eseaux de capteurs sans fil, afin de parvenir `a une meilleure performance globale du r´eseau, le routage devrait tre examin´e en mˆeme temps que la distribution de taux des flux individuels. Dans cet article, nous abordons le probl`eme de l'optimisation des taux d'´echantillonnage avec route s´election dynamique pour r´eseaux de capteurs sans fil. Nous modelisons le probleme comme un probl`eme d'optimisation et le r´esolvons dans le cadre de l'utilite de reseau maximisation. Sur la base de la m´ethode primal-dual et la dual d´ecomposition technique, nous concevons un algorithme distribu´e qui atteint le meilleur l'utilite de reseau globale au vu de route d´ecision dynamique et le taux distribution. Des simulations ont ´et´e r´ealis´ees pour d´emontrer l'efficience et l'efficacit´e de nos solutions propos´ees. fr
|
56 |
Improving software modularity through crosscutting concern extractionYuen, Isaac January 2009 (has links)
Aspect-oriented programming (AOP) is a programming paradigm for improving the modularity of software systems by localizing crosscutting concerns in the system into aspects. Aspect-oriented refactorings extend AOP to legacy systems, by identifying and encapsulating existing crosscutting concerns through aspect-mining (discovery of crosscutting concerns) and aspect refactoring (semantic-preserving code transformation to extract the crosscutting code into aspects). However, not all the data obtained from aspectmining corresponds to crosscutting concerns, and existing aspect languages may not be capable of refactoring all crosscutting concerns into aspects. In this thesis, we describe an approach for extracting crosscutting concerns in a system to a form that is suitable for refactoring. This process includes identifying the presence of crosscutting code clusters in aspect-mining results; assessing if the concerns should be extracted using various metrics; and performing code transformation to extract the crosscutting clusters into standalone methods with a common method signature and parameters. The work also describes the ConcernExtractor, a software tool that implements the concern cluster extraction technique. We apply ConcernExtractor to assess and extract the crosscutting concerns in existing systems to evaluate the prevalence of crosscutting concerns that are refactorable, and the applicability of our approach for generating aspect refactoring opportunities. / La programmation orient´ee-aspect (POA) est un paradigme ayant pour but d’am´eliorerla modularit´e du logiciel en localisant les pr´eoccupations ´eparpill´ees dans des aspects.La refactorisation orient´ee-aspect ´etend les avantages de la POA par l’identification etl’encapsulation des pr´eoccupations existantes `a l’aide du forage d’aspects (aspect mining),et par leur refactorisation en aspects `a l’aide de transformations de code. Cependant,certains r´esultats du forage d’aspects ne correspondent pas `a des pr´eoccupations´eparpill´ees, et les languages aspects existants ne supportent pas la refactorisation de tousles pr´eoccupations en aspects. Cette th`ese d´ecrit une approche pour extraire les pr´eoccupations´eparpill´ees dans une forme qui se prˆete `a la refactorisation. Le processus incluel’identi-fication des pr´eoccupations refactorisables parmis les r´esultats de forage d’aspects,l’´evaluation de la valeur de l’extraction potentielle, et l’extraction proprement dite `a l’aidede transformations de code. La th`ese d´ecrit aussi ConcernExtractor, l’outil que nous avonsr´ealis´e pour supporter cette approche. Nous avons appliqu´e ConcernExtractor pour ´evaluerl’approche sur plusieurs syst`emes existants.
|
57 |
Aspect impact analysisZhang, Dehua January 2009 (has links)
One of the major challenges in aspect-oriented programming is that aspects may have unintended impacts on a base program. Thus, it is important to develop techniques and tools that can both summarize the impacts and provide information about the causes of the impacts. This thesis presents impact analyses for AspectJ. Our approach detects different ways advice and inter-type declarations interact and interfere with the base program and focuses on four kinds of impacts, \emph{state impacts} which cause changes of state in the base program, \emph{computation impacts} which cause changes in functionality by adding, removing or replacing computations of the base program, \emph{shadowing impacts} which cause changes of field reference in the base program, and \emph{lookup impacts} which cause changes of method lookup in the base program. We provide a classification scheme for these kinds of impacts and then develop a set of static analyses to estimate these impacts. A key feature of our approach is the use of points-to analysis to provide more accurate estimates. Further, our analysis results allow us to trace back to find the causes of the impacts. We have implemented our techniques in the AspectBench compiler. By implementing them in an AspectJ compiler, all kinds of pointcuts, advice and inter-type declarations can be analyzed. We also have integrated these analyses into an AspectJ IDE and provided a two-way navigation between impacts and program source code. In addition, we have carried out experiments on example programs and benchmarks to investigate the results of our analyses. / L'un des principaux d\'efis de la programmation orient\'ee aspect est queles aspects peuvent avoir des effets non voulus sur le programme debase. Il est donc important de d\'evelopper des techniques et des outilsqui peuvent mesurer les impacts et fournir des informations sur ce genrede ph\'enom\`ene. Cette th\`ese pr\'esente des analyses d'impact pour AspectJ.Notre approche examines les diff\'erentes voies par lesquelles les aspectspeuvent interagir avec le programme de base et se concentre sur quatretypes d'impacts, \emph{les impacts d'\'etat} qui provoquent deschangements d'\'etat dans le programme de base, \emph{les impacts decalcul} qui provoquent des changements au niveau des fonctions parl'ajout, la suppression ou le remplacement de calculs le programme debase, \emph{les impacts d'ombres} qui provoquent des changements dedomaine r\'ef\'erences dans le programme de base et \emph{les impacts der\'ef\'erence} qui provoquent des changements au niveau des m\'ethodesr\'ef\'erenc\'ees.Nous offrons un syst\'eme de classification pour ces types d'impacts etd\'eveloppons une s\'erie d'analyses statiques pour \'evaluer ces impacts. Un\'el\'ement cl\'e de notre approche est l'utilisation d'analyses de pointeursafin de fournir des estimations plus pr\'ecises. En outre, nos r\'esultatsd'analyse nous permettent de remonter plus loin et de trouver les causesde ces impacts.Nous avons mis en place nos techniques dans le compilateur AspectBenchpour AspectJ. En les appliquant dans un compilateur AspectJ, plusieurssortes de d\'eclarations peuvent \^etre analys\'ees. Nous avons \'egalementint\'egr\'e ces des analyses dans un environnement de d\'eveloppement AspectJet avons fourni une navigation bidirectionnelle entre les impacts et lecode source. En outre, nous avons proc\'ed\'e \`a des exp\'eriences sur desprogrammes de test pour d\'emontrer les r\'esultats d'analyses typiques.
|
58 |
Time series measurement of force distribution in ice hockey helmets during varying impact conditionsOuckama, Ryan January 2013 (has links)
Modern sport helmets have been effective in reducing catastrophic head injuries such as skull fracture and subdural hematoma; yet, the high prevalence of minor traumatic brain injuries (mTBI) is an unresolved public health concern. Consequently, there is a need for greater scrutiny in a helmet's ability to mitigate collision forces that may correspond to mTBI risk. Current safety standards primarily assess a helmet's ability to minimize the whole head's peak acceleration during blunt impacts. Absent are dynamic measures local to the impact site itself due to the technical challenge to spatial map high impact force magnitudes with high temporal resolution. Inclusion of the latter measures may enhance the functional assessment of helmets. Thus, the aim of this research was to develop a localized impact mapping system (LIMS) for placement between the helmet and head interface and then to utilize the LIMS to evaluate the mechanical behaviour of various padding foams and helmets during controlled headform drop and projectile collision tests. Interposed between the helmet shell/padding and head surface, this LIMS consists of an array of discrete, thin force sensors connected to a compact signal conditioner and high speed data acquisition digital recorder. A first study demonstrated the feasibility of the LIMS to accurately capture impact events in terms of both force magnitude and temporal response. The results of this initial study demonstrated that the system could capture impact forces with acceptable error (~5%) and high correlation (0.97) between measures of global force and the sensor array. Furthermore, the LIMS demonstrated the ability to capture impact "footprints" that functionally differentiated material properties of density and temperature. A second study incorporated the LIMS as part of a standard controlled surrogate headform drop test for blunt impacts. The LIMS performed equally well on the curved cranial surface geometry of the headform and was able to differentiate unique impact contact distribution patterns based on the ice hockey helmet model's shell and padding configurations, including identification of high focal force concentrations (>16 MPa) during side impact. Of note, global head impact acceleration measures did not correspond to the magnitude of localized contact forces (R-square=0.22), but did correspond to net global contact force (R-square=0.98). A third study used the LIMS between a Hybrid III surrogate headform and an ice hockey helmet during controlled puck projectile collisions. The LIMS was effective at capturing local force distributions dynamics for short impact events lasting 2-4 ms, and again was able to distinguish between varied helmet model's padding materials and installed configurations. Five helmet models were subject to highly localized puck impact at two different velocities (V1=24.2 m/s, V2=33.3 m/s). At V2, peak contact pressures, averaged across all helmet models, were nearly double (393 N/cm^2) those recorded at the same location during vertical drop testing (201 N/cm^2). Again, linear acceleration data did not discern these differences in localized pressures. In summary, this novel testing approach provides an instrument for the assessment of helmet design and material properties on local impact dynamics, and demonstrates merit as an industrial and research tool to enhance head protection. / Les casques de sport modernes ont été efficaces pour réduire les traumatismes crâniens sévères tels que les fractures du crâne et les hématomes sous-duraux. Malgré tout, la prévalence élevée des lésions cérébrales traumatiques mineures reste un problème de santé publique non résolu. Par conséquence, il existe un besoin important pour un examen plus approfondi de la capacité des casques à atténuer les forces de collision qui pourraient correspondre à un risque de traumatisme cérébral mineur. Les normes actuelles évaluent principalement l'efficacité des casques à minimiser les accélérations maximales de la tête lors d'impacts contondants. L'absence de mesures dynamiques locales, plus précisément au site d'impact, est surtout dû au défi technique qui est d'insérer des matrices sensorielles avec une haute résolution temporelle. Le développement de cette dernière technique de mesure pourrait améliorer l'évaluation fonctionnelle des casques en général. Ainsi, l'objectif principal de cette recherche était de développer un système de cartographie d'impact local (CIL) tout en permettant l'insertion de ce système entre le casque et la tête, et ainsi, utiliser le CIL afin d'évaluer les caractéristiques mécaniques de differentes mousses de rembourrage et différents casques au cours de chute et de collision contrôlée sur une fausse tête. Interposé entre la calotte/rembourrage et la surface de la tête, ce CIL est constitué d'un réseau de capteurs de force discrets, minces, connectés à une grande vitesse d'acquisition de données numériques. Une première étude a démontré la faisabilité d'utiliser le CIL pour capturer avec précision des événements d'impact en termes d'amplitude et de force ainsi que la réponse temporelle. Par ailleurs, le CIL a démontré la capacité de capturer les «empreintes» d'impact et de différencier fonctionnellement divers matériaux en mousse et des densités. Une deuxième étude a intégré le CIL dans le cadre d'une norme d'essai contrôlé de fausse tête de substitution lors de chute sur objets contondants. Le CIL s'est révélé tout aussi précis sur la géométrie de la surface crânienne courbe et a été en mesure de différencier les modèles uniques d'impact de contact de distribution basé sur le modèle de coque des casques de hockey et de configurations de remplissage, y compris l'identification de concentrations élevées de force de contact (>16 MPa). Fait à noter, l'impact global des mesures d'accélération de la tête ne correspond pas nécessairement à l'ampleur des forces d'intervention (R-square=0.22). Une troisième étude a utilisé le CIL entre une fausse tête de substitution Hybrid III et un casque de hockey sur glace lors de collisions de projectiles. Le CIL est efficace pour capturer des distributions locales de forces dynamiques lors d'événements de moins de 4 ms, et encore une fois a été en mesure de faire la distinction entre les matériaux de rembourrage des modèles de casques variés. En résumé, cette approche de test innovatrice s'est avérée être un instrument précis pour l'évaluation de la conception du casque et des propriétés des matériaux sur la dynamique d'impact local, et démontre le mérite d'un outil industriel et de recherche visant à améliorer la protection de la tête.
|
59 |
Approaches for privacy aware image processing in cloudsNourian, Arash January 2013 (has links)
Cloud computing is ideal for image storage and processing because itprovides enormously scalable storage and processing resources at low cost. One of the major drawbacks of cloud computing, however, is the lack of robust mechanismsfor the users to control the privacy of the data they farm out to the clouds such as photos. One way of enhancing the privacy andsecurity of photos stored in clouds is to encrypt the photos before storing them. However, using encryption to secure the information held in the photos precludes applying any image processing operations while they are held in the third party servers. To address this issue, we have developed image encoding schemes that enhances the privacy of image data that is outsourced to the clouds for processing. We utilize a hybrid cloud model to implement our proposed schemes. Unlike previously proposed image encryption schemes, our encoding schemes allow different forms of pixel-level, block-level, and binary image processing to take place in the clouds while the actual image is not revealed to the cloud provider. Our encoding schemes use a cat map transformation to encode the image after it is masked with an arbitrarily chosen ambient image or mixed with other images. A simplified prototype of the image processing systems was implemented and the experimental results and detailed security analysis for each proposed scheme are presented in this thesis. We use common image processing tasks to demonstrate the ability of our scheme to perform computations on privacy enhanced images. A variety of pixel level, block level and binary filters have been implemented to support image processing on encoded images in the system. The operational overhead added by our schemes to image filters is roughly 18% on average. / Le cloud computing est idéal pour le stockage d'image et le traitement parce qu'il fournit le stockage énormément évolutif et des ressources de traitement au bas prix. Un des inconvénients majeurs de cloud computing, cependant, est le manque de mécanismes robustes pour les utilisateurs pour contrôler la vie privée des données qu'ils mettent en gérance aux clouds comme des photos. Une façon d'améliorer la vie privée et la sécurité de photos stockées dans des clouds est de crypter les photos avant le stockage d'eux. Cependant, utilisant le chiffrage pour garantir les informations tenues dans les photos écarte appliquer n'importe quelles transformations d'image tandis qu'ils sont tenus dans les serveurs tiers. Pour aborder cette question, nous avons développé les régimes de codage d'image qui améliorent la vie privée des données d'image qui est externalisée aux clouds pour le traitement. Nous utilisons un modèle de hybrid cloud pour mettre en œuvre nos régimes proposés. Contrairement aux régimes de chiffrage d'image précédemment proposés, nos régimes de codage permettent aux formes différentes de niveau de pixel, le niveau de bloc et le traitement d'image binaire d'avoir lieu dans les clouds tandis que l'image réelle n'est pas révélée au fournisseur de cloud. Nos régimes de codage utilisent une carte de chat chaotique pour transformer l'image après qu'il est masqué avec une image ambiante arbitrairement choisie ou mixte avec d'autres images. Un prototype simplifié des systèmes de traitement d'image a été mis en œuvre et les résultats expérimentaux et l'analyse de sécurité détaillée pour chaque régime proposé sont présentés dans cette thèse. Nous utilisons l'image commune traitant des tâches de démontrer la capacité de notre régime d'exécuter des calculs sur la vie privée des images améliorées. Une variété de niveau de pixel, le niveau de bloc et des filtres binaires a été mise en œuvre pour supporter le traitement d'image sur des images codées dans le système. L'opérationnel des frais généraux supplémentaire selon nos régimes de refléter des filtres est environ 18% le en moyenne.
|
60 |
Dynamic compiler optimization techniques for MATLABLameed, Nurudeen January 2013 (has links)
MATLAB has gained widespread acceptance among engineers and scientists. Several aspects of the language such as dynamic loading and typing, safe updates, copy semantics for arrays, and support for higher-order functions contribute to its appeal, but at the same time provide many challenges to the compiler and virtual machine. MATLAB is a dynamic language. Traditional implementations of the language use interpreters and have been found to be too slow for large computations. More recently, researchers and software developers have been developing JIT compilers for MATLAB and other dynamic languages. This thesis is about the development of new compiler analyses and transformations for a MATLAB JIT compiler, McJIT, which is based on the LLVM JIT compiler toolkit. The new contributions include a collection of novel analyses for optimizing copying of arrays, which are performed when a function is first compiled. We designed and implemented four analyses to support an efficient implementation of array copy semantics in a MATLAB JIT compiler. Experimental results show that copy optimization is essential for performance improvement in a compiler for the MATLAB language. We also developed a variety of new dynamic analyses and code transformations for optimizing running code on-the-fly according to the current conditions of the runtime environment. LLVM does not currently support on-the-fly code transformation. So, we first developed a new on-stack replacement approach for LLVM. This capability allows the runtime stack to be modified during the execution of a function, thus enabling a continuation of the execution at a higher optimization level. We then used the on-stack replacement implementation to support selective inlining of function calls in long-running loops. Our experimental results show that function calls in long-running loops can result in high runtime overhead, and that selective dynamic inlining can be used to drastically reduce this overhead.The built-in function feval is an important MATLAB feature for certain classes of numerical programs and solvers which benefit from having functions as parameters. Programmers may pass a function name or function handle to the solver and then the solver uses feval to indirectly call the function. In this thesis, we show that although feval provides anacceptable abstraction mechanism for these types of applications, there are significant performance overheads for function calls via feval, in both MATLAB interpreters and JITs. The thesis then proposes, implements and compares two on-the-fly mechanisms for specialization of feval calls. The first approach uses our on-stack replacement technology. The second approach specializes calls of functions with feval using a combination of runtime input argument types and values. Experimental results on seven numerical solvers show that the techniques provide good performance improvements.The implementation of all the analyses and code transformations presented in this thesis has been done within the McLab virtual machine, McVM, and is available to the public as open source software. / MATLAB est devenu reconnu parmi les ingénieurs et les scientifiques. Plusieurs aspects du langage comme le chargement et le typage dynamique, la mise à jour sûr, la sémantique de copie pour les tableaux, et le support des fonctions d'ordre supérieur contribuent à son attrait, mais induisent de nombreuses difficultés pour les compilateurs et les machines virtuelles. MATLAB est un langage dynamique. Les implémentations classiques du langage fonctionnent grâce à des interpréteurs et sont généralement trop lentes pour des larges calculs. Plus récemment, les chercheurs ainsi que les programmeurs ont développé des compilateurs JIT pour MATLAB et d'autres langages dynamiques. Cette thèse traite le développement de nouvelles analyses et transformations pour un compilateur JIT MATLAB, McJIT, qui est basé sur l'outil LLVM. Ces nouvelles contributions comprennent plusieurs analyses novatrices pour optimiser la copie de tableaux, qui sont exécutées quand une fonction est compilée pour la première fois. Nous avons implémenté quatre analyses pour permettre une implémentation efficace de la sémantique de copie de tableaux dans un compilateur JIT MATLAB. Les résultats expérimentaux montrent que l'optimisation de la copie est essentielle pour améliorer les performances dans un compilateur pour le langage MATLAB.Nous avons aussi développé une variété d'analyses dynamiques novatrices et des transformations de code pour optimiser du code à la volée en fonction de l'environnement d'exécution. Actuellement, LLVM ne supporte pas les transformations de code à la volée. En conséquence, nous avons d'abord développé une nouvelle approche pour faire du remplacement sur la pile avec LLVM. Cette fonctionnalité permet à la pile d'exécution d'être modifiée pendant l'exécution de la fonction, ce qui permet de continuer l'exécution à un niveau supérieur d'optimisation. Nous avons ensuite utilisé cette implémentation du remplacement sur la pile pour permettre l'en line des appels de fonctions dans les boucles. Nos résultats expérimentaux montrent que les appels de fonctions dans les boucles à long temps d'exécution peuvent induire un coût important en termes de performances, et que l'en line dynamique et sélectif peut être utilisé pour réduire drastiquement ce coût. La fonction "feval" est une fonctionnalité importante de MATLAB pour certains programmes de calcul numérique qui profitent de la possibilité de passer des fonctions comme paramètres. Les programmeurs peuvent passer le nom d'une fonction ou un pointeur de fonctions à un programme qui utilisera ensuite feval pour appeler indirectement cette fonction. Dans cette thèse, nous montrons que malgré le fait que feval soit un mécanisme d'abstraction appréciable pour certaines applications, il induit un coût significatif, à la fois pour les interpréteurs et pour les compilateurs JIT. Cette thèse propose, implémente et compare deux mécanismes à la volée pour la spécialisation des appels utilisant feval. La première méthode utilise notre mécanisme de remplacement sur la pile. La seconde méthode spécialise les appels de fonctions utilisant feval en combinant le type et la valeur des arguments à l'exécution. Les résultats expérimentaux sur sept programmes différents montrent que ces techniques permettent une bonne amélioration des performances. L'implémentation de toute les analyses et transformations de code présentées dans cette thèse a été effectué dans la machine virtuelle McLab, appelée McVM, et est disponible au public en tant que logiciel libre.
|
Page generated in 0.0416 seconds