Distributed Computing with DAFFIE - PowerPoint PPT Presentation

About This Presentation
Title:

Distributed Computing with DAFFIE

Description:

Message class subscription. Scientific Computing and ... Subscription based receive. Low level services. Registration, timing, synchronization, query ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 49
Provided by: scv
Learn more at: http://scv.bu.edu
Category:

less

Transcript and Presenter's Notes

Title: Distributed Computing with DAFFIE


1
Distributed Computing with DAFFIE
  • Glenn Bresnahan
  • Boston University
  • Scientific Computing and Visualization
  • (http//scv.bu.edu/DAFFIE/Earlab-Oct02)

2
Agenda
  • DAFFIE overview
  • DAFFIE live example
  • DAFFIE distributed computing components
  • Earlab leaky example
  • Advanced display demonstrations (CGL)

3
What is DAFFIE?
  • Distributed Applications Framework For Immersive
    Environments
  • System for easily creating distributed and shared
    virtual environments
  • Authored by Glenn Bresnahan, Erik Brisson, Robert
    Putnam

4
Background Motivation
  • Distributed/remote visualization (1992)
  • CM to networked SGI workstations
  • IWay (1995)
  • NSF (vBNS) Connections Program (1996)
  • Alliance computing and visualization grid (NSF
    PACI) (1997)
  • ImmersaDesk
  • Alliance 98

5
Distributed Application Issues
  • Analysis of application communication
    requirements
  • Sensitivity to bandwidth
  • Sensitivity to latency
  • Testing and debugging
  • Performance measurement and analysis
  • Robustness
  • Interoperability of software tools
  • Management and scheduling of resources in
    multiple administrative domains
  • Hardware bottlenecks
  • Scalability of applications
  • Security and privacy

6
The VR Experience - Immersion
  • Real-time, realistic 3D graphics
  • Stereopsis
  • Wide (complete) field of view
  • Viewer based point-of-view
  • Navigability
  • Natural interaction modes
  • Realistic audio

7
Distributed VR
  • Multi-person, multi-site shared virtual space
  • Navigation
  • Avatar representation
  • Telephony

8
DAFFIE Distributed VR Model
  • Objective
  • State consistency
  • Minimize and/or hide latency
  • Persistence
  • Equipotent clients
  • Network visible state
  • Message (event) based
  • Message classes
  • Delivery service classes
  • Globally sequenced, reliable delivery
  • Message class subscription

9
DAFFIE Components
  • Messaging system (events)
  • VR (upper layer) protocol
  • Client applications (agents)

FOR MORE INFO...
http//scv.bu.edu/DAFFIE
10
DAFFIE Application Clients
  • Viewer
  • Sound server
  • Telephony generator
  • Sound player
  • Behavior agents
  • Audio/video generators/processors
  • Object generators/manipulators

11
DAFFIE Environment
telephony
behavior agent
viewer
behavior agent
sound player
event server
behavior agent
telephony
sound player
viewer
12
DAFFIE Viewer
  • SGI Performer based
  • Mono or stereo display
  • Workstation, CAVE/Immersadesk, HMD
  • Interactive and server (video) modes
  • Six-degree of freedom head-tracking
  • Six-degree of freedom navigation
  • Texture-mapped streaming video

13
DAFFIE Viewer
  • Simple "script-based" world description
  • Geometric models
  • Animation
  • Sounds
  • Many 3D model formats
  • Interaction by picking and/or proximity
  • Local control of time-sensitive animation and
    sound
  • Global update of avatar motion and object state

14
DAFFIE Sound Server
  • Telephony generator
  • Digitize microphone input
  • Broadcasts "packetized" audio stream
  • Echo suppression

15
DAFFIE Sound Server
  • Sound player input
  • Multiple sound sources
  • Real-time audio streams (e.g. telephony)
  • Prerecorded object sound files
  • Audio attachment objects (3D location)
  • Avatar position in virtual space
  • Listener position in physical space
  • Sound player output
  • Multi-channel localized audio signals

16
DAFFIE Agents
  • Control object behavior
  • Computational modules
  • Proximity triggers
  • Portals
  • Device interfaces
  • Kinematic sculptures, robotics
  • Audio and video sourcing (e.g. camera)
  • Audio and video processing

17
DAFFIE Live Example
Telephony gen.
Telephony generator
Sound player
Sound player
Navigation client
event server
Renderer (viewer)
Render server
Video broadcaster
Proximity detector
Starfish
Video director
Chair
Video player
Skater
Butterfly
18
DAFFIE Messaging System
  • Application protocol
  • Client services
  • Client application library (API)
  • Message router (event server)

19
Message Routing
  • Message router (event server)
  • Multiple delivery service classes
  • Globally sequenced, reliable delivery
  • Client management
  • Message subscription
  • Multiprocessor, high bandwidth
  • Hierarchical servers
  • Proxy routers
  • Fan-in/fan-out
  • Tunneling
  • Direct routing for P2P

20
DAFFIE Message routing
client
client
client
client
proxy
client
event server
client
proxy
client
client
client
21
Message Transports
  • TCP/IP
  • Single channel or striped
  • Shared memory
  • Myrinet
  • IP Multicast

22
Application Architecture

App thread
App thread
App thread
App thread

Services (timing, streaming, file sharing)
Event Messaging
Message Transport
23
DAFFIE VR Protocol
  • Compound objects
  • Geometry
  • Transformation
  • Audio hook
  • Video texture map
  • Component ownership/object locking
  • Request ownership
  • Broadcast changes
  • Release ownership
  • Ownership transfer
  • Real and effective ownership

24
Defining Upper Layer Protocol
  • Components
  • Event type ID (define in a .h)
  • Data layout (compile-time) (C struct in a .h)
  • Data layout (run-time) (event_define)
  • Needed for canonical byte ordering
  • Types statically (compile time) defined
  • Protocol compiler

25
Messaging API
  • Multithreaded, non-blocking
  • Dynamic join and leave
  • Point-to-point and broadcast messages
  • Polled or callback (active messages)
  • Subscription based receive
  • Low level services
  • Registration, timing, synchronization, query

26
Service Discovery
  • Client registration/identification
  • Class (Viewer, Audio, Video, Agent)
  • Species (video source, broadcaster, sink,
    processor)
  • Instance (video stream-name)
  • ID
  • Hostname
  • Client location services
  • Service request/acknowledgement

27
Client Services
  • Streaming
  • Data chunking
  • Bandwidth management
  • Dynamic tuning
  • File sharing
  • File servers
  • Conditional upload/download

28
Job Initiation Monitoring
  • Rely on external authentication and job
    initiation (e.g. ssh, Globus)
  • Launch scripts (ad hoc)
  • cgl-video visible.bu.eduvgrab -compress
    -process -vswirl -steps 9999999 -np 4
    -vbroadcast .vdirect -object poolanim_grp
  • Agent initiation daemon
  • Logging daemon

29
Client Monitoring
  • Dynamic clients
  • JOIN, EXIT, IDENTIFICATION events
  • Event server monitoring
  • Heart beat
  • Latency monitor
  • Congestion control
  • Statistic generation
  • Client monitoring
  • Process level monitoring
  • Congestion management
  • Remote process termination

30
Leaky Example Headers
  • typedef struct
  • EVENT_HEAD head
  • char filename200
  • EVENT_GETPARAM
  • typedef struct
  • EVENT_HEAD head
  • int logger, frame_size, sample_rate)
  • EVENT_START
  • typedef struct
  • EVENT_HEAD head
  • char msg1000
  • EVENT_LOGINFO

31
Leaky Example Headers
  • typedef struct
  • EVENT_HEAD head
  • int client
  • int size
  • float pressure1
  • EVENT_ADVANCE

32
Leaky Example Headers
  • define ET_START 1001
  • define ET_GETPARAM 1002
  • define ET_LOGINFO 1003
  • define ET_ADVANCE 1004
  • define ET_STOP 1005
  • event_define(ET_START, start, 1, 3,
    EVENT_DATA_INT)
  • event_define(ET_GETPARAM, getparam, 1, 200,
    EVENT_DATA_CHAR)
  • event_define(ET_ADVANCE, advance, 3,
  • 1, EVENT_DATA_INT,
  • 1, EVENT_DATA_INT,
  • 0, EVENT_DATA_FLOAT)

33
Leaky Example Initialization
  • id event_join(earlab.bu.edu, nc)
  • printf(Joined as client id d of d\n, id, nc)
  • event_register(integrator, leaky, 1.0)
  • event_receive_type(ET_GETPARAM, ET_START,
    ET_ADVANCE, ET_STOP)
  • event_callback(ET_START, do_start)
  • event_callback(ET_GETPARAM, do_getparam)

34
Leaky Example File Service
  • GotParamFile 0
  • efs_init()
  • efs_chdir_receive(/tmp/earlab)

35
Leaky Example GetParameters
  • do_getparams(EVENT_GETPARM egp)
  • efs_download_cond(egp-gtfilename,
  • egp-gtfilename, xfer_done, 0)
  • return(1)
  • xfer_done(int reqid, int fsid, inr rc, char
    file, int tag)
  • char path1000
  • strcpy(path, /tmp/earlab/) strcat(path,
    file)
  • GotParamFile 1
  • Leaky_GetParameters(path)
  • )

36
Leaky Example Start
  • do_start(EVENT_START est)
  • Logger est-gtlogger
  • while (!GotParamFile) event_sleep(100)
  • Leaky_Start(egp-gtframe_size, egp-gtsample_rate)
  • return(1)

37
Leaky Example LogInfo
  • void LogInfo(char msg)
  • EVENT_LOGINFO einfo
  • strcpy(einfo-gtmsg, msg)
  • event_send(Logger, ET_LOGINFO, einfo,
    sizeof(einfo))

38
Leaky Example Advance
  • do_advance(EVENT_ADVANCE ein)
  • int bytes
  • EVENT_ADVANCE eout
  • bytes sizeof(EVENT_ADVANCE)
    (ein-gtsize-1)sizeof(float)
  • eout (EVENT_ADVANCE ) malloc(bytes)
  • Leaky_Advance(ein-gtpressure, eout-gtpressure)
  • eout-gtclient event_clientid()
  • eout-gtsize ein-gtsize
  • event_send(ein-gtclient, ET_ADVANCE, eout,
    bytes)
  • free(ein)
  • return(1)

39
Demonstrations
  • Computer Graphics Lab (Room 203)
  • ImmersaDesk
  • Display Wall

40
VR/AG Bridging
  • Interconnect VR and AG spaces
  • VR image display over AG
  • Bridge audio in both directions
  • Provide interactivity for AG participants
  • AG navigation
  • AG interaction tools
  • Couple external a/v to both AG and VR

41
VR/AG Bridging
  • Boston
  • Cyberarts
  • Festival
  • SC Global

FOR MORE INFO...
http//scv.bu.edu/hipart/GoGrid/
42
VR/AG Bridging
AG node
view renderer
video bridge
navigation
Multicast
DAFFIE
audio renderer
AG audio
AG node
viewer
43
Tiled Display Wall
  • Benefits
  • Low cost
  • Scalable
  • Multi-use
  • Passive stereo
  • Construction
  • Linux cluster display driver
  • Inexpensive LCD projectors
  • Cheap polarizing filters

44
Tiled Display Wall
  • One Linux node for every 1 or 2 projectors
  • One additional control or head node
  • Two projectors per tile
  • Linear polarizing filters
  • Polarization-preserving projection screen
  • Custom fabricated projector mounts
  • 6 DoF adjusters

45
Tiled Display Wall
  • Prototype configuration
  • 2x2 stereo array (8 projectors)
  • 4 Linux display nodes one control node
  • Fast Ethernet interconnect
  • Final configuration
  • 4x3 stereo array (2 x 9.4 Mpixel)
  • 24 Linux display nodes one control node
  • 52 Linux compute nodes
  • Myrinet interconnect

46
Tiled Display Wall
  • Software
  • WireGL/Chromium
  • VTK
  • Performer local synchronization
  • Movie player (several)

47
Tiled Display Wall
  • Issues
  • Software
  • Alignment
  • Custom projector mounts
  • Computerized motor control
  • Imaging transformation warps
  • Autocalibration
  • Edge blending
  • Opto-mechanical
  • Software

48
Access Grid Overview
  • Suite of commodity hardware and software
  • Open source, Open protocol
  • Multicast
  • Tiled projection wall
  • Approximately 90 installations world-wide (7
    countries)

FOR MORE INFO...
http//www-fp.mcs.anl.gov/fl/accessgrid/ http//sc
v.bu.edu/accessgrid
Write a Comment
User Comments (0)
About PowerShow.com