stampede: a cluster programming middleware for interactive stream- oriented applications mamadou...

14
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]

Upload: percival-gilmore

Post on 24-Dec-2015

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

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]

Page 2: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

• 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

Page 3: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

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

Page 4: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

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.

Page 5: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

Research Issues

• Stream-oriented and time-sequenced data

• Heterogeneity of Components

• Resource management

• High Availability

• Clients leave and join arbitrarily

• Security and Privacy

Page 6: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

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

Page 7: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

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) 

Page 8: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

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

Page 9: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

Concurrent dynamic data structure

STM: Space-Time Memory

.

.

.

.

.

.

1 2 3 4 . . .

1 2 3 4 . . .

space

time

threads connections channels

Page 10: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

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

Page 11: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

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

Page 12: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

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.

Page 13: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

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

Page 14: Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management

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)