A hierarchical component model for large parallel interactive applications

This paper focuses on parallel interactive applications ranging from scientific visualization, to virtual reality or computational steering. Interactivity makes them particular on three main aspects: they are endlessly iterative, use advanced I/O devices, and must perform under strong performance constraints (latency, refresh rate). A data flow graph is a common approach to describe such applications. Edges represent data streams while vertices are nodes processing incoming data streams and producing new data streams. When applications become large, this approach shows its limits in terms of maintainability and portability. In this paper, we propose to use the composite design pattern to extend this model for supporting hierarchies of components. The component hierarchy is traversed to instantiate the application and extract the data flow graph required for the execution. This approach has been implemented for the FlowVR middleware. It enables to define parametric composite components, commonly called skeletons, that can be reused in various applications. This approach proved to significantly leverage application modularity as presented in different case studies.

[1]  Ken Brodlie,et al.  Distributed and Collaborative Visualization , 2004, Comput. Graph. Forum.

[2]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java: Experiences with Auto-adaptive and Reconfigurable Systems , 2006 .

[3]  Jérémie Allard,et al.  Distributed Physical Based Simulations for Large VR Applications , 2006, IEEE Virtual Reality Conference (VR 2006).

[4]  Timothy G. Mattson,et al.  Patterns for parallel programming , 2004 .

[5]  Jocelyn Sérot,et al.  Skeletons for parallel image processing: an overview of the SKIPPER project , 2002, Parallel Comput..

[6]  William J. Schroeder,et al.  A Parallel Approach for Efficiently Visualizing Extremely Large, Time-Varying Datasets , 2000 .

[7]  Keming Zhang,et al.  SCIRun2: a CCA framework for high performance computing , 2004, Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings..

[8]  Stephane Cotin,et al.  EP4A: Software and Computer Based Simulator Research: Development and Outlook SOFA—An Open Source Framework for Medical Simulation , 2007, MMVR.

[9]  Bruno Ra A Shader-Based Parallel Rendering Framework , 2005 .

[10]  Luc Van Gool,et al.  Blue-c: a spatially immersive display and 3D video portal for telepresence , 2003, IPT/EGVE.

[11]  Pat Hanrahan,et al.  Brook for GPUs: stream computing on graphics hardware , 2004, SIGGRAPH 2004.

[12]  Marco Danelutto,et al.  ASSIST As a Research Framework for High-Performance Grid Programming Environments , 2006, Grid Computing: Software Environments and Tools.

[13]  William R. Mark,et al.  Cg: a system for programming graphics hardware in a C-like language , 2003, ACM Trans. Graph..

[14]  Christian Pérez,et al.  PadicoTM: An Open Integration Framework for Communication Middleware and Runtimes , 2002, 2nd IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGRID'02).

[15]  Jérémie Allard,et al.  FlowVR: A Middleware for Large Scale Virtual Reality Applications , 2004, Euro-Par.

[16]  SugermanJeremy,et al.  Brook for GPUs , 2004 .

[17]  Jos Stam,et al.  Stable fluids , 1999, SIGGRAPH.

[18]  T. Tu,et al.  From Mesh Generation to Scientific Visualization: An End-to-End Approach to Parallel Supercomputing , 2006, ACM/IEEE SC 2006 Conference (SC'06).

[19]  Jérémie Allard,et al.  Marker-less Real Time 3D Modeling for Virtual Reality , 2004 .

[20]  Timothy G. Mattson,et al.  A Pat-tern Language for Parallel Programming , 2004 .

[21]  William Thies,et al.  StreamIt: A Language for Streaming Applications , 2002, CC.

[22]  Chaoli Wang,et al.  Parallel Multiresolution Volume Rendering of Large Data Sets with Error-Guided Load Balancing , 2004, EGPGV.

[23]  Edmond Boyer,et al.  Exact polyhedral visual hulls , 2003, BMVC.

[24]  Jérémie Allard,et al.  Grimage: markerless 3D interactions , 2007, SIGGRAPH '07.

[25]  Kevin P. McAuliffe,et al.  An architecture for a scientific visualization system , 1992, Proceedings Visualization '92.

[26]  William Schroeder,et al.  The Visualization Toolkit: An Object-Oriented Approach to 3-D Graphics , 1997 .

[27]  Jérémie Allard,et al.  FlowVR: A Framework For Distributed Virtual Reality Applications , 2006 .

[28]  David Foulser,et al.  IRIS Explorer: a framework for investigation , 1995, COMG.

[29]  Henry Fuchs,et al.  A sorting classification of parallel rendering , 2008, SIGGRAPH 2008.

[30]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java , 2006, Softw. Pract. Exp..

[31]  Denis Caromel,et al.  From Distributed Objects to Hierarchical Grid Components , 2003, OTM.

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

[33]  Chaoli Wang,et al.  A parallel multiresolution volume rendering algorithm for large data visualization , 2005, Parallel Comput..

[34]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[35]  Andrew A. Chien,et al.  The OptIPuter , 2003, CACM.