Prototypage rapide d'applications parallèles de vision artificielle par squelettes fonctionnels

Les travaux presentes dans ce memoire s'inscrivent dans la problematique dite d'adequation algorithme architecture. Ils concernent la conception et le developpement d'outils logiciels permettant de faire du prototypage rapide d'applications paralleles de vision artificielle sur des architectures de type MIMD a memoire distribuee. De tels outils ont pour objectif de faciliter l'evaluation rapide d'un ensemble de solutions vis a vis d'un probleme donne en diminuant de maniere drastique les temps de cycle conception-implantation-validation des applications. L'outil SKiPPER developpe dans le cadre de ces travaux est base sur le concept des squelettes de parallelisation. Ceux-ci representent des constructeurs generiques de haut niveau encapsulant des formes communes de parallelisme tout en dissimulant les details relatifs a l'exploitation de ce parallelisme sur la plate-forme cible. Au niveau langage, la specification des squelettes est realisee au sein du langage fonctionnel Caml sous la forme de fonctions d'ordre superieur. Ainsi, la specification d'une application est un programme purement fonctionnel dans lequel l'expression du parallelisme est limitee au choix et a l'instanciation des squelettes choisis dans une base pre-definie. L'environnement de developpement SKiPPER est organise autour de trois modules realisant respectivement l'expansion du code fonctionnel en un graphe flot de donnees (outil Dromadaire), le placement-ordonnancement de ce graphe sur l'architecture materielle (outil SynDEx developpe a l'INRIA) et la generation de code cible final pour l'architecture cible (la machine Transvision du LASMEA dans notre cas). L'applicabilite des concepts mis en \oe uvre dans SKiPPER et des outils developpes conjointement est demontree egalement dans les travaux presentes dans ce memoire. Diverses applications de complexite realiste (etiquetage en composantes connexes, detection et suivi de signalisation horizontale autoroutiere) ont ete parallelisees automatiquement par l'environnement SKiPPER validant ainsi l'objectif initial de prototypage rapide d'applications paralleles de vision artificielle a fortes contraintes temporelles sur architecture dediee.

[1]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[2]  Peter M. Dew,et al.  Abstract machine models for highly parallel computers , 1995 .

[3]  J. P. DerutinLASMEAUMR A Real Time Car Tracker , 1998 .

[4]  Michel Sorine,et al.  The SynDEx software environment for real-time distributed systems design and implementation , 1991 .

[5]  Rémy Kocik,et al.  A methodology to design and prototype optimized embedded robotic systems , 1999 .

[6]  Robin Milner,et al.  A proposal for standard ML , 1984, LFP '84.

[7]  Jack Dongarra,et al.  Pvm 3 user's guide and reference manual , 1993 .

[8]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[9]  John Glauert,et al.  SISAL: streams and iteration in a single assignment language. Language reference manual, Version 1. 2. Revision 1 , 1985 .

[10]  Sorel,et al.  02 - Modèle unifié pour la conception conjointe logiciel-matériel , 1997 .

[11]  David B. Skillicorn,et al.  Models and languages for parallel computation , 1998, CSUR.

[12]  ParallelProgrammingW F McCollMarch The BSP Approach to Architecture Independent , 1995 .

[13]  Ginhac,et al.  05 - Evaluation de l'outil SynDEx en vue de prototypage rapide d'applications de traitement d'images sur machine MIMD-DM , 1997 .

[14]  John F. Canny,et al.  A Computational Approach to Edge Detection , 1986, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[15]  François Charot,et al.  Architectures parallèles spécialisées pour le traitement d'image , 1993 .

[16]  Yiannis Aloimonos,et al.  Active vision , 2004, International Journal of Computer Vision.

[17]  Tore Andreas Bratvold Skeleton-based parallelisation of functional programs , 1994 .

[18]  R. Hindley The Principal Type-Scheme of an Object in Combinatory Logic , 1969 .

[19]  Christophe Lavarenne,et al.  SynDEx : un environnement de programmation pour applications de traitement du signal distribuées , 1991 .

[20]  Olivier Sentieys Analyse et synthese d'architectures en traitement du signal et d'images : vers la conception d'architectures heterogenes , 1993 .

[21]  Hussein M. Alnuweiri Constant-Time Parallel Algorithms for Image Labeling on a Reconfigurable Network of Processors , 1994, IEEE Trans. Parallel Distributed Syst..

[22]  A. Benveniste,et al.  Synchronous Programming with Events and Relations: the SIGNAL Language and Its Semantics , 1991, Sci. Comput. Program..

[23]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[24]  Ottmar Krämer-Fuhrmann,et al.  TRAPPER: A Graphical Programming Environment for Industrial High-Performance Applications , 1993, PARLE.

[25]  Marco Vanneschi,et al.  A methodology for the development and the support of massively parallel programs , 1992, Future Gener. Comput. Syst..

[26]  Marco Kesseler Constructing Skeletons in Clean The Bare Bones , 1995 .

[27]  Moustafa Ghanem,et al.  Structured parallel programming , 1993, Proceedings of Workshop on Programming Models for Massively Parallel Computers.

[28]  Michel Paindavoine,et al.  07 - Adéquation de l'algorithme de Canny-Deriche généralisé sur architecture DSP avec l'environnement SynDEx , 1997 .

[29]  Rachid Deriche,et al.  Fast algorithms for low-level vision , 1988, [1988 Proceedings] 9th International Conference on Pattern Recognition.

[30]  Azriel Rosenfeld,et al.  The DARPA Image Understanding Benchmark for Parallel Computers , 1990, J. Parallel Distributed Comput..

[31]  Olivier Sentieys,et al.  GAUT: An architectural synthesis tool for dedicated signal processors , 1993, Proceedings of EURO-DAC 93 and EURO-VHDL 93- European Design Automation Conference.

[32]  Richard S. Bird,et al.  An introduction to the theory of lists , 1987 .

[33]  P. P. Jonker,et al.  An SIMD-MIMD architecture for image processing and pattern recognition , 1993, 1993 Computer Architectures for Machine Perception.

[34]  Rod M. Burstall,et al.  HOPE: An experimental applicative language , 1980, LISP Conference.

[35]  David B. Skillicorn,et al.  Architecture-independent parallel computation , 1990, Computer.

[36]  John Darlington,et al.  Fortran-S : A Uniform Functional Interface to ParallelImperative LanguagesJohn , 1994 .

[37]  Salvatore Orlando,et al.  An Environment for Structured Parallel Programming , 1997 .

[38]  Raghu Raghavan,et al.  Fast parallel algorithms: from images to level sets and labels , 1990, Other Conferences.

[39]  J.P. Derutin,et al.  Edge and region image segmentation processes on the parallel vision machine: Transvision , 1993, 1993 Computer Architectures for Machine Perception.

[40]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[41]  Viktor K. Prasanna,et al.  Fast Image Labeling Using Local Operators on Mesh-Connected Computers , 1991, IEEE Trans. Pattern Anal. Mach. Intell..

[42]  B. Zavidovique,et al.  A data-flow processor for real-time low-level image processing , 1991, Proceedings of the IEEE 1991 Custom Integrated Circuits Conference.

[43]  J. Darlington,et al.  Building parallel applications without programming , 1995 .

[44]  Naranker Dulay,et al.  MP: A Programming Environment for Multicomputers , 1992, Programming Environments for Parallel Computing.

[45]  Yike Guo,et al.  Functional Skeletons for Parallel Coordination , 1995, Euro-Par.

[46]  Roland Chapuis Suivi de primitives images. Application a la conduite automatique sur route , 1991 .

[47]  David B. Skillicorn,et al.  Parallelism and the Bird-Meertens Formalism , 1992 .

[48]  Marco Danelutto,et al.  ANCLETO: a template-based P3L compiler , 1997 .

[49]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.

[50]  Nicolas Halbwachs,et al.  Projet SYNCHRONE : les formats communs des langages synchrones , 1993 .

[51]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[52]  Yike Guo,et al.  Parallel skeletons for structured composition , 1995, PPOPP '95.

[53]  Fan Yang Traitement automatique d'images de visages : algorithmes et architecture , 1998 .

[54]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .

[55]  P. J. Landin,et al.  The next 700 programming languages , 1966, CACM.

[56]  Nicolas Halbwachs,et al.  LUSTRE: A declarative language for programming synchronous systems* , 1987 .

[57]  Wolfgang Obelöer,et al.  The monitoring facilities of the graphical parallel programming environment TRAPPER , 1995, Proceedings Euromicro Workshop on Parallel and Distributed Processing.

[58]  F. Heitz,et al.  Real-time collision avoidance at road-crossings on board the Prometheus-ProLab 2 vehicle , 1994, Proceedings of the Intelligent Vehicles '94 Symposium.

[59]  Wen-Hsiang Tsai,et al.  Moment-preserving thresholding: a new approach , 1995 .

[60]  Wentong Cai,et al.  A Cost Calculus for Parallel Functional Programming , 1995, J. Parallel Distributed Comput..

[61]  David B. Skillicorn,et al.  The Bird-Meertens Formalism as a Parallel Model , 1993 .

[62]  Nicholas Carriero,et al.  Matching Language and Hardware for Parallel Computation in the Linda Machine , 1988, IEEE Trans. Computers.

[63]  Jocelyn Sérot,et al.  Embodying Parallel Functional Skeletons: An Experimental Implementation on Top of MPI , 1997, Euro-Par.

[64]  Wentong Cai,et al.  Efficient Parallel Algorithms for Tree Accumulations , 1994, Sci. Comput. Program..

[65]  Colin Roy Banger Construction of multidimensional arrays as categorical data types , 1996 .

[66]  Pascal Legrand Schemas de parallelisation d'applications de traitement d'images sur la machine parallele transvision , 1995 .

[67]  Frédéric Boussinot,et al.  The ESTEREL language , 1991, Proc. IEEE.

[68]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

[69]  B. Zavidovique,et al.  Implementing image processing applications on a real-time architecture , 1993, 1993 Computer Architectures for Machine Perception.

[70]  Andrew Ireland,et al.  Towards a skeleton based parallelising compiler for SML , 1997 .

[71]  Moustafa Ghanem,et al.  Co-ordinating Heterogeneous Parallel Computation , 1996, Euro-Par, Vol. I.

[72]  D. A. Turner The semantic elegance of applicative languages , 1981, FPCA '81.

[73]  Peter G. Harrison,et al.  Parallel Programming Using Skeleton Functions , 1993, PARLE.

[74]  Jorge L. C. Sanz,et al.  Algorithms for Image Component Labeling on SIMD Mesh-Connected Computers , 1987, IEEE Trans. Computers.

[75]  Yves Sorel,et al.  Performance Optimization of Multiprocessor Real-Time Applications by Graphs Transformations , 1993, PARCO.

[76]  Marco Danelutto,et al.  Skeletons for Data Parallelism in p3l , 1997, Euro-Par.

[77]  Ottmar Krämer-Fuhrmann,et al.  Software engineering for parallel systems: the TRAPPER approach , 1995, Proceedings of the Twenty-Eighth Annual Hawaii International Conference on System Sciences.

[78]  Didier Juvin,et al.  08 - Symphonie calculateur massivement parallèle modélisation et réalisation , 1997 .

[79]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[80]  Jack B. Dennis,et al.  First version of a data flow procedure language , 1974, Symposium on Programming.

[81]  Document for a Standard Message-Passing Interface , 1993 .

[82]  Marc Eccher Architecture parallele dediee a l'etude d'automates de vision en temps reel , 1992 .

[83]  Yves Sorel,et al.  Modèle d'exécutif distribué temps réel pour SynDEx , 1998 .

[84]  Andrew M. Wallace,et al.  Prototyping Parallel Algorithms using Standard ML , 1995, BMVC.

[85]  Malcolm C. Newey,et al.  Implementing ML on distributed memory multiprocessors , 1993, SIGP.

[86]  Simon Thompson,et al.  Haskell: The Craft of Functional Programming , 1996 .

[87]  A. Church The calculi of lambda-conversion , 1941 .