Next:
Contents
Contents
FlowVR :
A Middleware for High Performance Interactive Applications
http://flowvr.sf.net
Laboratoire ID
CNRS/INPG/INRIA/UJF
April 6, 2009
Montbonnot, France
Contents
Acknowledgment
I
. Getting Started
1
. FlowVR Documentation
2
. FlowVR Installation
2
.
1
Downloading FlowVR
2
.
2
System Supported
2
.
3
Dependencies
2
.
3
.
1
Required Software
2
.
3
.
2
Strongly Advised Software
2
.
3
.
3
Optional Software
2
.
4
Compilation
2
.
5
Test
2
.
5
.
1
Quitting the test applications
2
.
6
Installation
2
.
6
.
1
Make Install
2
.
6
.
2
Environment Variables
2
.
6
.
3
Check the Installation
3
. A Simple FlowVR Application: Insights
3
.
1
Overview
3
.
2
Directory Structure
3
.
3
Components
3
.
4
Modules
3
.
5
Compilation
3
.
6
Execution
3
.
6
.
1
Daemon Launching
3
.
6
.
2
Shared Memory Segment
3
.
6
.
3
Application Launching
3
.
6
.
4
Application Graph
3
.
7
Running the Application on 2 Machines
3
.
7
.
1
The cluster
3
.
7
.
2
The application
3
.
7
.
3
Launching
II
. User Manual: Basics
4
. Introduction
5
. Overview
5
.
1
Modules and Metamodules
5
.
2
Message
5
.
3
Network
5
.
4
Application Programming
5
.
5
Execution Model
5
.
5
.
1
Daemons
5
.
5
.
2
The Application Controller
5
.
6
Code Documentation
6
. Running Example: The Primes Application
7
. Directory Structure and Makefiles: Application Template
8
. Compilation, Execution and Config Files
8
.
1
Quick start for the Primes Example
8
.
2
The
primes-config.sh
Configuration File
9
. Messages
9
.
1
Buffer Handling
9
.
1
.
1
BufferPool
9
.
2
Stamps
9
.
2
.
1
Stamps API
10
. Modules and MetaModules
10
.
1
Predefined Input and Output Ports
10
.
2
Module Programming
10
.
2
.
1
Module Creation and Initialization
10
.
2
.
2
The Module API
10
.
3
Compiling a Module
10
.
4
Module and Metamodule Components
11
. Components
11
.
1
Hierarchical Components
11
.
2
Links
11
.
3
Component Files Naming Conventions
11
.
4
Component Programming
11
.
4
.
1
Id
11
.
4
.
2
Constructor
11
.
4
.
3
Virtual create
11
.
4
.
4
Virtual execute
11
.
4
.
5
Virtual setHosts
11
.
4
.
6
Root Component: the GENCLASS Macro
11
.
4
.
7
addObject
11
.
4
.
8
addPort
11
.
4
.
9
link
11
.
4
.
10
addObjectandLink
11
.
4
.
11
Primitive Components Connected to a Port
11
.
5
Application Compilation
11
.
6
Application Processing:
flowvr
11
.
7
Application Traverses
11
.
8
Component Mapping
11
.
9
Parameters
11
.
9
.
1
Declare a Parameter: addParameter
11
.
9
.
2
Set a Parameter Value
11
.
9
.
3
Priorities when Parameters are set Multiple Times
11
.
9
.
4
Get a Parameter Value
11
.
9
.
5
Example of use
11
.
10
Built-in Components
11
.
10
.
1
Connections
11
.
10
.
2
Filters
11
.
10
.
3
Synchronizers
11
.
10
.
4
Modules
11
.
10
.
5
Metamodules
11
.
10
.
6
Patterns
11
.
10
.
7
Communications
12
. Component Assembly
12
.
1
Connections and Cycles
12
.
1
.
1
Module-to-Module Connection
12
.
1
.
2
Connection Cycles
12
.
1
.
3
Connection Fan-out
12
.
1
.
4
Filters
12
.
1
.
5
Dataflow Synchronization Modes
12
.
1
.
6
Host Assignment for Network Objects
13
. Application Execution
13
.
1
The FlowVR Daemons:
flowvrd
13
.
1
.
1
Launching the FlowVR Daemon
13
.
1
.
2
The FlowVR Daemon Command Language
13
.
1
.
3
Application Launching
13
.
1
.
4
Start/Pause/Stop an Application
13
.
1
.
5
flowvr-kill
III
. User Manual: FlowVR Programming Extensions
14
. Manual Module Registration and Initialization
14
.
1
The Module API Factory: registerModule
15
. The Parallel Interface
15
.
1
Example
15
.
2
Compilation
15
.
3
Initialization of the Parallel Interface
15
.
3
.
1
Automatic Initialization
15
.
3
.
2
Forced a Parallel or Sequential Mode Initialization
15
.
3
.
3
Manual Parallel Mode Initialization
15
.
4
Functionnality of the Parallel Interface
15
.
4
.
1
Initialization Test
15
.
4
.
2
Running Mode
15
.
4
.
3
Process Rank
15
.
4
.
4
Number of Processes
15
.
4
.
5
Closing the Parallel Interface
15
.
5
Link with initModule
16
. File Searching in Path
16
.
1
Compilation
16
.
2
Basic search
16
.
3
Advanced search
16
.
3
.
1
Construction of a FilePath
16
.
3
.
2
Addition of a path
16
.
3
.
3
File search
17
. FlowVR Template Library
17
.
1
Overview
17
.
2
Vectors
17
.
3
Matrices
17
.
4
Quaternions
17
.
5
Types
17
.
6
Command Line Parsing
17
.
6
.
1
Declaring options
17
.
6
.
2
Parsing command line
17
.
6
.
3
Retrieving option values
17
.
7
Chunks
17
.
7
.
1
Chunk Events
17
.
7
.
2
Chunk Rendering
IV
. User Manual : FlowVR Utilities
18
. Flowvr-glgraph: Interactive Network Graph Visualization
18
.
1
Introduction
18
.
2
Launching
18
.
3
Clustered Layout
18
.
4
The toolbar
18
.
5
The view
18
.
5
.
1
Normal Mode
18
.
5
.
2
Selection Mode
18
.
6
The lists
18
.
6
.
1
Normal Mode
18
.
6
.
2
Selection Mode
18
.
7
Searching by Regular Expressions
19
. Other Utilities
19
.
1
Generate a Network Image with
flowvr-graph
19
.
2
flowvr-shmdump
: Dump Shared Memory Content
19
.
3
flowvr-run-ssh
: a Simple Module Launcher
19
.
4
Utility Modules
19
.
4
.
1
flowvr-fread and flowvr-fwrite
19
.
4
.
2
flowvr-joypad
V
. Developer Manual
20
. Advanced Example : the Fluid Application
20
.
1
The Modules
20
.
1
.
1
The Simulation Module Code
20
.
1
.
2
The Simulation MetaModule and Module Components
20
.
1
.
3
The Mouse Event Capture and Visualization Code
20
.
1
.
4
The Mouse Event Capture and Visualization Modules and Metamodules Components
20
.
2
The Application
20
.
2
.
1
Fluid
20
.
2
.
2
FluidMPI
21
. FlowVR Architecture Overview
21
.
1
The Daemon
21
.
1
.
1
Message Handling
21
.
1
.
2
Routing Table
21
.
1
.
3
Filters and Synchronizers
21
.
1
.
4
Regulator
21
.
1
.
5
Net
21
.
2
The Controller
21
.
3
The Controller and Daemon Interactions
21
.
4
The Command Language
21
.
5
Application Deployment
21
.
5
.
1
States components
21
.
5
.
2
The 4 Deployment Stages
21
.
6
The Telnet Interface
21
.
6
.
1
Application launching: Interactive or Batch
22
. Programming Filters and Synchronizers
22
.
1
What for?
22
.
2
Input and Output Message Queues
22
.
2
.
1
The Input Message Queue API
22
.
2
.
2
The Output Message Queue API
22
.
3
The Filters and Synchronizers API
22
.
3
.
1
Basic Filter Code Example
22
.
3
.
2
Threaded Synchronizer Code Example
About this document ...
2009-04-06