Return to search

McFor: A MATLAB-to-fortran 95 compiler

The high-level array programming language MATLAB is widely used for prototyping algorithms and applications of scientific computations. However, its dynamically-typed nature, which means that MATLAB programs are usually executed via an interpreter, leads to poor performance. An alternative approach would be converting MATLAB programs to equivalent Fortran 95 programs. The resulting programs could be compiled using existing high-performance Fortran compilers and thus could provide better performance. This thesis presents techniques that are developed for our MATLAB-to-Fortran compiler, McFor, for extracting information from the high-level semantics of MATLAB programs to produce efficient and reusable Fortran code. / The McFor compiler includes new type inference techniques for inferring intrinsic type and shape of variables and uses a value-propagation analysis to precisely estimate the sizes of arrays and to eliminate unnecessary array bounds checks and dynamic reallocations. In addition to the techniques for reducing execution overhead, McFor also aims to produce programmer-friendly Fortran code. By utilizing Fortran 95 features, the compiler generates Fortran code that keeps the original program structure and preserves the same function declarations. / We implemented the McFor system and experimented with a set of benchmarks with different kinds of computations. The results show that the compiled Fortran programs perform better than corresponding MATLAB executions, with speedups ranging from 1.16 to 102, depending on the characteristics of the program. / Le langage de programmation de tableaux de haut niveau MATLAB est largement utilisé afin de faire du prototypage d'algorithmes et des applications de calculs scientifiques. Cependant, sa nature de type dynamique, ce qui veut dire que les programmes MATLAB sont habituellement exécutés par un interpréteur, amène une mauvaise performance. Une approche alternative serait de convertir les programmes MATLAB aux programmes Fortran 95 équivalents. Les programmes résultants pourraient être compilés en utilisant les compilateurs de haute performance Fortran, ainsi ils peuvent fournir une meilleure performance. Cette thèse présente les techniques qui sont développées pour notre compilateur MATLAB-à-Fortran, McFor, pour extraire l'information des hauts niveaux des sémantiques des programmes MATLAB afin de produire un code Fortran efficace et réutilisable. / Le compilateur McFor inclut de nouvelles techniques de déduction pour inférer les types et formes intrinsèques des variables et utilise une analyse à propagation de valeurs pour estimer avec précision la tailles des tableaux de variables et pour éliminer les vérifications des limites et les réallocations dynamiques superflues de ces tableaux. En plus de ces techniques de réduction des temps d'exécution, McFor vise aussi a génèrer du code Fortran convivial pour les développeurs. En utilisant les avantages de Fortran 95, le compilateur génère du code Fortran qui préserve la structure originale du programme ainsi que les mêmes déclarations de fonctions. / Nous avons mis en oeuvre le système McFor et l'avons expérimenté avec un ensemble de tests de performance avec différentes sortes de calculs. Les résultats montrent que les programmes de Fortran compilés offrent une meilleure performance que les exécutions MATLAB correspondantes, avec une cadence accélérée de l'ordre de 1.16 à 102, selon les caractéristiques du programme.

Identiferoai:union.ndltd.org:LACETR/oai:collectionscanada.gc.ca:QMM.86985
Date January 2010
CreatorsLi, Jun
ContributorsLaurie Hendren (Internal/Supervisor)
PublisherMcGill University
Source SetsLibrary and Archives Canada ETDs Repository / Centre d'archives des thèses électroniques de Bibliothèque et Archives Canada
LanguageEnglish
Detected LanguageFrench
TypeElectronic Thesis or Dissertation
Formatapplication/pdf
CoverageMaster of Science (School of Computer Science)
RightsAll items in eScholarship@McGill are protected by copyright with all rights reserved unless otherwise indicated.
RelationElectronically-submitted theses.

Page generated in 0.0151 seconds