Composition de squelettes algorithmiques : application au prototypage rapide d'applications de vision

Le travail presente s'inscrit dans le cadre de la recherche sur des outils d'aide a la programmation parallele de machines MIMD-DM. Notre champ applicatif est celui de la programmation d'applications de vision artificielle. Ces recherches ont abouti au developpement de l'outil SKiPPER (SKeleton-based Parallel Programming EnviRonment) qui est un outil d'aide a la programmation parallele pour le prototypage rapide d'applications de vision artificielle. Il a ete concu pour obtenir une application operationnelle dans un delai tres court et avec le minimum d'etapes intermediaires dans le processus de realisation. La methodologie retenue pour Sa mise en oeuvre est fondee sur l'emploi de squelettes algorithmiques. Ces structures de programmation parametrables encapsulent des formes communement utilisees de parallelisme pour les rendre facilement exploitables. Dans le cadre de ce projet nous nous interessons aux aspects compositionnels de ces squelettes afin d'augmenter le potentiel d'applications de vision artificielle qui peuvent etre specifiees avec notre outil. Le sequencement de squelettes etant un cas trivial de composition deja pris en charge dans les premiers developpements de SKiPPER, nous nous interessons ici au cas plus difficile de l'imbrication de plusieurs squelettes, homogene et heterogene, c'est-a-dire entre squelettes identiques ou non. Nous proposons une approche dynamique de la composition des squelettes de parallelisation en etablissant une formulation generique de tous les squelettes de la bibliotheque de l'environnement et un modele d'execution capable de gerer dynamiquement a l'execution les problemes qui lui sont lies. Afin de valider l'approche, un certain nombre de programmes tests sont evalues ainsi qu'une application reelle de traitement d'images faisant apparaitre la necessite de disposer dans certains cas de figure de la souplesse et du potentiel offert par la composition de squelettes dans l'expression du parallelisme potentiel.

[1]  Dennis Koelma,et al.  Accurate Performance Models of Parallel Low Level Image Processing Operations Based on a Simple A , 2000 .

[2]  G. Michaelson,et al.  A Method for Developing Parallel Vision Algorithms with an Example of Edge Tracking , 1996 .

[3]  Daniel L. Slotnick The Conception and Development of Parallel Processors: A Personal Memoir , 1982, Annals of the History of Computing.

[4]  Greg J. Michaelson,et al.  Prototyping a Parallel Vision System in Standard ML , 1995, J. Funct. Program..

[5]  Jeremy Kepner Exploiting VSIPL and OpenMP for Parallel Image Processing , 2001 .

[6]  Berna L. Massingill Patterns for Parallel Application Programs , 1999 .

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

[8]  Timothy G. Mattson,et al.  A Pattern Language for Parallel Application Programs (Research Note) , 2000, Euro-Par.

[9]  Derek L. Eager,et al.  Affinity scheduling of unbalanced workloads , 1994, Proceedings of Supercomputing '94.

[10]  Bruno R. Preiss,et al.  Architectural Skeletons: The Re-Usable Building-Blocks for Parallel Applications , 1999, PDPTA.

[11]  Marco Danelutto,et al.  Dynamic run time support for skeletons , 1999, PARCO.

[12]  Doreen Y. Cheng,et al.  A Survey of Parallel Programming Languages and Tools , 2001 .

[13]  B. Ramakrishna Rau,et al.  Embedded Computer Architecture and Automation , 2001, Computer.

[14]  Jack J. Dongarra,et al.  A proposal for a set of level 3 basic linear algebra subprograms , 1987, SGNM.

[15]  Susanna Pelagatti Structured development of parallel programs , 1997 .

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

[17]  Romuald Aufrère,et al.  4 - Détection de route et suivi de véhicules par vision pour l'ACC , 2000 .

[18]  Michael J. Flynn,et al.  Very high-speed computing systems , 1966 .

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

[20]  Norman Scaife,et al.  NESTED ALGORITHMIC SKELETONS FROM HIGHER ORDER FUNCTIONS , 2001 .

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

[22]  B. R. Preiss,et al.  A Skeleton-Based Model for Developing Parallel Applications Using a Network of Processors , 2022 .

[23]  Jonathan Schaeffer,et al.  An experiment to measure the usability of parallel programming systems , 1996, Concurr. Pract. Exp..

[24]  Jocelyn Sérot,et al.  Implementation of a skeleton-based parallel programming environment supporting arbitrary nesting , 2001, Proceedings 15th International Parallel and Distributed Processing Symposium. IPDPS 2001.

[25]  Donald MacKenzie,et al.  The Influence of the Los Alamos and Livermore National Laboratories on the Development of Supercomputing , 1991, Annals of the History of Computing.

[26]  Salvatore Orlando,et al.  Parallel Programming Models Based on the Restricted Computation Structure Approach , 1994 .

[27]  Guy E. Blelloch,et al.  Implementation of a portable nested data-parallel language , 1993, PPOPP '93.

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

[29]  Anne Rogers,et al.  Software Caching and Computation Migration in Olden , 1996, J. Parallel Distributed Comput..

[30]  Lars Siegfried Nyland,et al.  The design of a prototyping programming language for parallel and sequential algorithms , 1991 .

[31]  Eleftherios D. Polychronopoulos,et al.  Enhancing the Performance of Autoscheduling with Locality-Based Partitioning in Distributed Shared Memory Multiprocessors , 2002 .

[32]  Norman Scaife,et al.  Engineering a Parallel Compiler for Standard ML , 1998 .

[33]  Jean-Pierre Derutin,et al.  Mise en œuvre statique de squelettes de parallélisation dynamiques sous syndex , 2000 .

[34]  Jonathan Schaeffer,et al.  Enterprise in context: assessing the usability of parallel programming environments , 1993 .

[35]  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.

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

[37]  Krishna M. Kavi,et al.  Design of cache memories for multi-threaded dataflow architecture , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[38]  D. Skillicom Architecture-independent parallel computation , 1990 .

[39]  Jonathan Schaeffer,et al.  Generating Parallel Program Frameworks from Parallel Design Patterns , 2000, Euro-Par.

[40]  Susumu Horiguchi,et al.  Comparative Cross-Platform Performance Results from a Parallelizing SML Compiler , 2001, IFL.

[41]  Jocelyn Sérot,et al.  CAMLFLOW: a CAML to data-flow graph translator , 2000, Scottish Functional Programming Workshop.

[42]  Thomas Rauber,et al.  The compiler TwoL for the design of parallel implementations , 1996, Proceedings of the 1996 Conference on Parallel Architectures and Compilation Technique.

[43]  Wilhelm Hasselbring,et al.  Prototyping Parallel Algorithms with PROSET-Linda , 1993, ACPC.

[44]  Jonathan Schaeffer,et al.  The Enterprise model for developing distributed applications , 1993, IEEE Parallel & Distributed Technology: Systems & Applications.

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

[46]  Dennis Koelma,et al.  Transparent parallel image processing by way of a familiar sequential API , 2000, Proceedings 15th International Conference on Pattern Recognition. ICPR-2000.

[47]  Yves Sorel,et al.  Real-time embedded image processing applications using the A/sup 3/ methodology , 1996, Proceedings of 3rd IEEE International Conference on Image Processing.

[48]  Dominique Ginhac,et al.  Prototypage rapide d'applications parallèles de vision artificielle par squelettes fonctionnels , 1999 .

[49]  Computer Staff Parallel processors were the future ... and may yet be , 1996 .

[50]  Mateo Valero,et al.  Early 21st Century Processors - Guest Editors' Introduction , 2001, Computer.

[51]  Jonathan Schaeffer,et al.  Experimentally Assessing the Usability of Parallel Programming Systems , 1994 .

[52]  Samuel A. Fineberg,et al.  Using MPI-Portable Parallel Programming with the Message-Passing Interface, by William Gropp , 1996 .

[53]  Yves Sorel,et al.  Optimized rapid prototyping for real-time embedded heterogeneous multiprocessors , 1999, Proceedings of the Seventh International Workshop on Hardware/Software Codesign (CODES'99) (IEEE Cat. No.99TH8450).

[54]  Berna L. Massingill,et al.  A Pattern Language for Parallel Application Programming , 1999 .

[55]  Dimitrios S. Nikolopoulos,et al.  Fast synchronization on scalable cache-coherent multiprocessors using hybrid primitives , 2000, Proceedings 14th International Parallel and Distributed Processing Symposium. IPDPS 2000.

[56]  Vaidy S. Sunderam,et al.  PVM: A Framework for Parallel Distributed Computing , 1990, Concurr. Pract. Exp..

[57]  Marco Danelutto,et al.  SkIE: A heterogeneous environment for HPC applications , 1999, Parallel Comput..

[58]  Betty Collis,et al.  Rapid Prototyping as a Faculty-Wide Activity: An Innovative Approach to the Redesign of Courses and Instructional Methods at the University of Twente. , 1998 .

[59]  Roland Chapuis,et al.  Fast prototyping of parallel-vision applications using functional skeletons , 2001, Machine Vision and Applications.

[60]  Denis Trystram,et al.  Parallel Matrix-Vector Product on Rings with a Minimum of Communications , 1996, Parallel Comput..

[61]  Christoph W. Kessler,et al.  NestStep: Nested Parallelism and Virtual Shared Memory for the BSP Model , 2000, The Journal of Supercomputing.

[62]  Robin Milner,et al.  Definition of standard ML , 1990 .

[63]  Roopa Rangaswami,et al.  A cost analysis for a higher-order parallel programming model , 1996 .

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

[65]  Murray Silverstein,et al.  A Pattern Language , 1977 .

[66]  Chris Hankin,et al.  Abstract Interpretation of Declarative Languages , 1987 .

[67]  John H. Reif,et al.  Prototyping parallel and distributed programs in Proteus , 1991, Proceedings of the Third IEEE Symposium on Parallel and Distributed Processing.

[68]  Jocelyn Sérot,et al.  SKiPPER: A Skeleton-Based Parallel Programming Environment for Real-Time Image Processing Applications , 1999, PaCT.

[69]  Y. Sorel,et al.  Massively parallel computing systems with real time constraints: the "Algorithm Architecture Adequation" methodology , 1994, Proceedings of the First International Conference on Massively Parallel Computing Systems (MPCS) The Challenges of General-Purpose and Special-Purpose Computing.

[70]  Gregory R. Andrews,et al.  An overview of the SR language and implementation , 1988, TOPL.

[71]  Raphael Canals Implantation d'algorithmes de segmentation d'images sur la machine parallele transvision , 1993 .

[72]  Michel Dhome,et al.  Tracking of 3D Objects from Appearance , 2001 .

[73]  Mohammad M. Hamdan,et al.  A combinational framework for parallel programming using algorithmic skeletons , 2000 .

[74]  J.-P. Derutin,et al.  Parallelisation of a face tracking algorithm with the SKiPPER-II parallel programming environment , 2003, 2003 IEEE International Workshop on Computer Architectures for Machine Perception.

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

[76]  R. Rangaswami,et al.  HOPP — A Higher-Order Parallel Programming Model , 1995 .

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

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

[79]  Bruno R. Preiss,et al.  From Design Patterns to Parallel Architectural Skeletons , 2002, J. Parallel Distributed Comput..

[80]  James Riely,et al.  Specification and Development of Parallel Algorithms with the Proteus System , 1994, Specification of Parallel Algorithms.

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

[82]  Christopher Alexander,et al.  The Timeless Way of Building , 1979 .

[83]  Bruno R. Preiss,et al.  Building parallel applications using design patterns , 2002 .

[84]  Michel Dhome,et al.  A simple and efficient template matching algorithm , 2001, Proceedings Eighth IEEE International Conference on Computer Vision. ICCV 2001.

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

[86]  Henri E. Bal,et al.  Orca: A Language For Parallel Programming of Distributed Systems , 1992, IEEE Trans. Software Eng..

[87]  Jonathan Schaeffer,et al.  Experience with parallel programming using code templates , 1998, Concurr. Pract. Exp..