Return to search

McFLAT: A profile-based framework for Matlab loop analysis and transformations

Parallelization and optimization of the MATLAB® programming language presents severalchallenges due to the dynamic nature of MATLAB. Since MATLAB does not have statictype declarations, neither the shape and size of arrays, nor the loop bounds are known atcompile-time. This means that many standard array dependence tests and associated transformationscannot be applied straight-forwardly. On the other hand, many MATLAB programsoperate on arrays using loops and thus are ideal candidates for loop transformationsand possibly loop vectorization/parallelization.This thesis presents a new framework, McFLAT, which uses profile-based training runs todetermine likely loop-bounds ranges for which specialized versions of the loops may begenerated. The main idea is to collect information about observed loop bounds and hotloops using training data which is then used to heuristically decide upon which loops andwhich ranges are worth specializing using a variety of loop transformations.Our McFLAT framework has been implemented as part of the McLAB extensible compilertoolkit. Currently, McFLAT is used to automatically transform ordinary MATLAB code intospecialized MATLAB code with transformations applied to it. This specialized code can beexecuted on any MATLAB system, and we report results for four execution engines, Mathwork'sproprietary MATLAB system, the GNU Octave open-source interpreter, McLAB'sMcVM interpreter and the McVM JIT. For several benchmarks, we observed significantspeedups for the specialized versions, and noted that loop transformations had differentimpacts depending on the loop range and execution engine.This thesis reports on the design and implementation of McFLAT, a framework that isdesigned to study the effect of various loop transformations on different loop-bound rangesby introducing loop-level specializations in MATLAB programs. / La parallelisation et l'optimisation du langage de programmation informatique MATLAB®représente plusieurs défis compte tenu du caractère dynamique de ce dernier.Puisque MATLAB ne possède pas de déclaration de type statique, ni son profil et la tailledes matrices ni les boucles limites, sont connus au temps de compilation. Cela signifieque plusieurs tests standardisés de la dépendance des matrices et de ses transformationsassociées ne peuvent pas ˆ etre appliqués dans une manière directe. D' autre part, plusieursprogrammes MATLAB sont opérés sur les matrices en utilisant les boucles et donc sontdes candidats idéals pour la transformation en boucle et possiblement la vectorisation enboucle/parallelisation.Cette hypothèse présente un nouveau cadre, McFLAT, qui exécute des entrainements basessur des profils afin de déterminer la portée des éventuelles boucles-limites pour qui des versionsspécialisées des boucles pourraient ˆ etre générées. L'idée principale est de faire une collecte d'information concernant les boucles en observation ainsi que les boucles chaudsen capitalisant sur les données d'entrainement qui sont ensuite utilisées pour décider heuristiquementsur quels boucles et limites il faut se spécialiser en utilisant une variété detransformateurs de boucles.Notre cadre McFLAT a été implémenté en tant que composant de McLAB extensible compilertoolkit. Actuellement, McFLAT, est utilisé pour transformer automatiquement le codeordinaire MATLAB en code spécialisé MATLAB avec des transformations appliquées à cedernier. Ce code spécialisé pourrait ensuite être exécuté sur tout systéme matlab et nouslivrons les résultats de quatre moteurs d'exécution, Mathwork's proprietary MATLAB system,le GNU Octave source-libre interprète, l'interprète McVM de mclab et le McVM JIT. Pour plusieurs repères, nous observons une rapidité significative pour les versions spécialisées, et on note que les transformations en boucle ont eu différents impacts qui dépendent de la limite des boucles et du moteur d'exécution.Ce mémoire se focalise sur le dessin et l'implémentation de McFLAT, un cadre qui estdésigné pour étudier les effets de plusieurs transformations en boucle sur plusieurs niveauxde boucles-limites en introduisant des spécialisations au niveau des boucles dans les programmes MATLAB.

Identiferoai:union.ndltd.org:LACETR/oai:collectionscanada.gc.ca:QMM.97139
Date January 2011
CreatorsAslam, Amina
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.0016 seconds