stampede: a cluster programming middleware for interactive stream- oriented applications mamadou...
TRANSCRIPT
Stampede: A Cluster Programming Middleware for Interactive Stream-
Oriented Applications
Mamadou Diallo Leila Jalali
CS224 Advances in Database Management System Technology
Some slides borrowed from [Kishore Ramachandran’s slides]
• Stampede is a cluster parallel programming system with novel data abstractions designed to support emerging classes of complex interactive stream-oriented multimedia applications.
• Application Domain: interactive vision, animation, and multimedia collaboration
• Examples: Smart Kiosk, mobile robots, smart vehicles, intelligent rooms, interactive animation
Stampede
Interactive Stream-Oriented Apps
• vision, animation, multimedia collaboration
Why parallel computing for such apps?
• computationally intensive
• inherently parallel (pipelined, data, and task)
Platforms?
• SMPs, and clusters
Problems
• dynamic data sharing
• real-time properties
CRL’s Smart Kiosk Application• public access to info and entertainment
• multiple users interact with multiple Kiosks
• input: implicit (camera, gaze, infrared,...) and explicit (voice, gesture, touch-screen,...)
• output: emotive face, synthesized speech, ...digitizer
tracker
input net tracker
tracker
output net
.
.
decision
heterogeneous pieces of software: GUIs, trackers, etc.
Research Issues
• Stream-oriented and time-sequenced data
• Heterogeneity of Components
• Resource management
• High Availability
• Clients leave and join arbitrarily
• Security and Privacy
What new issues?
• temporally evolving dynamic data structures
• dynamic producer-consumer relationships
• not everything consumed
• inter-stream synchronization
digitizer
Hi-Fi tracker
Low-Fitracker
buffers
time
Stampede main contributions
• Virtual vs. real timestamps– By vitalizing time the same time stamp index
associated to data
– A way to propagate temporal causality
• Garbage collection• Implementation of four applications
• Performance study: low performance overhead (good performance of clusters)
Solutions : STM
• an abstraction for parallel programming, a dynamic concurrent distributed data structure for holding time-sequenced data
• STM channels: provide random access to a collection of time-indexed data items
• STM queues: provide FIFO access
• STM registers: can be used like a cluster-wide shared variable
Concurrent dynamic data structure
STM: Space-Time Memory
.
.
.
.
.
.
1 2 3 4 . . .
1 2 3 4 . . .
space
time
threads connections channels
Concurrent dynamic data structure
STM Example
─ Each row is a channel: used to place a time sequenced data records produced by an activity─ Each column temporally correlated records
Using the STM channel
consumer: get-item(in-connection, ts) code to use item consume-item(in-connection, ts)
producer: put-item(out-connection, ts)
API includes calls to: create channel connect, disconnect to/from channel advance thread virtual time synchronize virtual time with real time
Solutions: STM summary• STM, a concurrent dynamic data structure
for flexible manipulation of time-sequenced data, with automatic GC
• Why is STM a good idea? – time: important attribute for interactive apps– sharing abstractions such as DSM, and
synchronization abstractions such as locks and barriers are too low level
– current parallel programming languages do not offer the right abstractions for stream-oriented interactive apps.
Solutions (cont.)
• Garbage Collection: Automatic garbage collection across clusters, use consume operation and rules
– Using a global minimum timestamp: minimum of virtual times of all the threads and timestamps of all unconsumed items
• Communicating Complex Data Structures through STM: use object types
• Synchronization with Real-Time: provides an API for loose temporal synchrony
Implementation
• Clusters of x86-Linux, x86-Solaris, StrongArm-Linux, and Windows nodes
• Performance Evaluation– Microbenchmarks: measured latency and
bandwidth of put/get– Applications (Video Textures, Color Tracker)
• Low performance overhead (good performance of clusters)