Bridging the gap between high-level and low-level spatial algorithms
Combler le fossé entre l'algorithmique spatiale haut-niveau et bas-niveau
Résumé
In computer science, there is a dichotomy between sequential computations and parallel computations, each of them being abstracted in various ways depending on the goal. We are interested in parallel computations as captured by the model of Cellular Automata (CA for short) introduced by John von Neumann in the 40's. We focus on theoretical and practical tools needed to design a particular CA as a solution for a given parallel algorithmic problem. Examples of such problems are the firing squad synchronization problem and the real time sequence generation problems. In ordinary computer programming, a programmer typical thinks about a problem, comes up with an abstract algorithm, implement it in a high-level programming language that is transformed by a compiler to the low-level assembly code. The high-level programming language is supposed to allow the programmer to express his or her idea as directly or clearly as possible, and the compiler typically optimizes the produced assembly code in some way. Thinking of CA transition tables as a low-level executable assembly code, two main approaches have been devised to provide a high-level formal description of the ``cellular algorithm'': signal machines introduced by Jérôme Durand-Lose in 2003 and cellular fields introduced during the PhD thesis of Luidnel Maignan. A first rough description of the goal of this thesis is to allow automatic reduction of the number of state and/or the number of transition of an already given cellular automaton, this automatic reduction being thought as the optimization step of the ``compilation process'' of cellular field approach in particular.
En informatique, il existe une dichotomie entre les calculs séquentiels et les calculs parallèles, chacun d'eux étant abstrait de diverses manières selon le but recherché. Nous nous intéressons aux calculs parallèles tels que capturés par le modèle des automates cellulaires (CA en abrégé) introduit par John von Neumann dans les années 40. Nous nous concentrons sur les outils théoriques et pratiques nécessaires pour concevoir une CA particulière comme solution à un problème algorithmique parallèle donné. Des exemples de tels problèmes sont le problème de synchronisation des fusiliers et les problèmes de génération de séquences en temps réel. Dans la programmation informatique ordinaire, un programmeur pense généralement à un problème, propose un algorithme abstrait, l'implémente dans un langage de programmation de haut niveau qui est transformé par un compilateur en code assembleur de bas niveau. Le langage de programmation de haut niveau est censé permettre au programmeur d'exprimer son idée aussi directement ou clairement que possible, et le compilateur optimise généralement le code assembleur produit d'une manière ou d'une autre. Considérant les tables de transition CA comme un code assembleur exécutable de bas niveau, deux approches principales ont été imaginées pour fournir une description formelle de haut niveau de ``l'algorithme cellulaire'' : les machines à signaux introduites par Jérôme Durand-Lose en 2003 et les champs cellulaires introduit lors de la thèse de doctorat de Luidnel Maignan. Une première description approximative du but de cette thèse est de permettre la réduction automatique du nombre d'état et/ou du nombre de transition d'un automate cellulaire déjà donné, cette réduction automatique étant pensée comme l'étape d'optimisation du ``processus de compilation'' de l'approche du champ cellulaire en particulier.
Origine | Version validée par le jury (STAR) |
---|