Stampede A Cluster Programming Middleware for Interactive Stream

  • Slides: 14
Download presentation
Stampede: A Cluster Programming Middleware for Interactive Stream. Oriented Applications Mamadou Diallo Leila Jalali

Stampede: A Cluster Programming Middleware for Interactive Stream. Oriented Applications Mamadou Diallo Leila Jalali CS 224 Advances in Database Management System Technology Some slides borrowed from [Kishore Ramachandran’s slides]

Stampede • Stampede is a cluster parallel programming system with novel data abstractions designed

Stampede • 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

Interactive Stream-Oriented Apps • vision, animation, multimedia collaboration Why parallel computing for such apps?

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

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 decision output net heterogeneous pieces of software: GUIs, trackers, etc.

Research Issues • • • Stream-oriented and time-sequenced data Heterogeneity of Components Resource management

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 •

What new issues? • temporally evolving dynamic data structures • dynamic producer-consumer relationships • not everything consumed • inter-stream synchronization digitizer time buffers Hi-Fi tracker Low-Fi tracker

Stampede main contributions • Virtual vs. real timestamps – By vitalizing time the same

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

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 clusterwide shared variable

STM: Space-Time Memory Concurrent dynamic data structure threads connections channels 1 2 3 4.

STM: Space-Time Memory Concurrent dynamic data structure threads connections channels 1 2 3 4. . 1 2 3 4 . . . space time

STM Example Concurrent dynamic data structure ─ Each row is a channel: used to

STM Example Concurrent dynamic data structure ─ 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 API includes calls to: create channel connect, disconnect to/from channel

Using the STM channel API includes calls to: create channel connect, disconnect to/from channel advance thread virtual time synchronize virtual time with real time consumer: get-item(in-connection, ts) code to use item consume-item(in-connection, ts) producer: put-item(out-connection, ts)

Solutions: STM summary • STM, a concurrent dynamic data structure for flexible manipulation of

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

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 x 86 -Linux, x 86 -Solaris, Strong. Arm-Linux, and Windows

Implementation • Clusters of x 86 -Linux, x 86 -Solaris, Strong. Arm-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)