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

Slides:



Advertisements
Similar presentations
U Computer Systems Research: Past and Future u Butler Lampson u People have been inventing new ideas in computer systems for nearly four decades, usually.
Advertisements

GMD German National Research Center for Information Technology Darmstadt University of Technology Perspectives and Priorities for Digital Libraries Research.
Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
Stampede A Cluster Programming Middleware for Interactive Stream-oriented Applications Umakishore Ramachandran, Rishiyur Nikhil, James Matthew Rehg, Yavor.
SMM5101 (ADVANCED MULTIMEDIA PROGRAMMING) Review of Multimedia Programming.
Class 6 LBSC 690 Information Technology Human Computer Interaction and Usability.
Concurrency CS 510: Programming Languages David Walker.
Grids and Grid Technologies for Wide-Area Distributed Computing Mark Baker, Rajkumar Buyya and Domenico Laforenza.
CS 603 Threads, Processes, and Agents March 18, 2002.
The Architecture of Transaction Processing Systems
Space-Time Memory Kishore Ramachandran Georgia Tech Joint work with researchers from Compaq CRL (Rishiyur Nikhil, Jim Rehg, Bert Halstead, Chris Joerg,
Introduction. Why Study OS? Understand model of operation –Easier to see how to use the system –Enables you to write efficient code Learn to design an.
DBST 652 Emerging Database Technologies Many challenging areas are supported by database technology Eg. Web.
Fundamentals of Python: From First Programs Through Data Structures
Stampede Overview Joint research between HP CRL and Georgia Tech (*) Kishore Ramachandran (*) Jim Rehg(*), Phil Hutto(*), Ken Mackenzie(*), Irfan Essa(*),
Computer System Architectures Computer System Software
Marcelo de Paiva Guimarães Bruno Barberi Gnecco Marcelo Knorich Zuffo
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Robot Autonomous Perception Model For Internet-Based Intelligent Robotic System By Sriram Sunnam.
® How to Build IBM Lotus Notes Components for Composite Applications 정유신 과장 2007 하반기 로터스 알토란.
1 Distributed Systems: an Introduction G53ACC Chris Greenhalgh.
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Multimedia is a combination of text, art, sound, animation, and video.
Architectures of distributed systems Fundamental Models
Data and Computer Communications Chapter 10 – Circuit Switching and Packet Switching (Wide Area Networks)
A Distributed Programming Infrastructure for Integrating Smart Sensors Umakishore Ramachandran, Kenneth Mackenzie, Steve DeWeerth, Irfan Essa, Thad Starner.
1 Multiprocessor and Real-Time Scheduling Chapter 10 Real-Time scheduling will be covered in SYSC3303.
Asynchronous Communication Between Components Presented By: Sachin Singh.
DISTRIBUTED COMPUTING Introduction Dr. Yingwu Zhu.
Term 2, 2011 Week 1. CONTENTS Problem-solving methodology Programming and scripting languages – Programming languages Programming languages – Scripting.
Stampede Overview Joint research between HP CRL and Georgia Tech (*) Kishore Ramachandran (*) Jim Rehg(*), Phil Hutto(*), Ken Mackenzie(*), Irfan Essa(*),
ENTERFACE 08 Project 1 “MultiParty Communication with a Tour Guide ECA” Mid-term presentation August 19th, 2008.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
CS333 Intro to Operating Systems Jonathan Walpole.
3/14/2005 CS851: Data Services for Advanced System Applications 1 DFuse: A Framework for Distributed Data Fusion Rajnish Kumar, Matthew Wolenetz, Bikash.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
Virtual Characters. Overview What is a digital character? What is a digital character? Why do would we want digital characters? Why do would we want digital.
DISTRIBUTED COMPUTING
Simics: A Full System Simulation Platform Synopsis by Jen Miller 19 March 2004.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Internet2 AdvCollab Apps 1 Access Grid Vision To create virtual spaces where distributed people can work together. Challenges:
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Internet of Things. IoT Novel paradigm – Rapidly gaining ground in the wireless scenario Basic idea – Pervasive presence around us a variety of things.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Thread basics. A computer process Every time a program is executed a process is created It is managed via a data structure that keeps all things memory.
NCP Info DAY, Brussels, 23 June 2010 NCP Information Day: ICT WP Call 7 - Objective 1.3 Internet-connected Objects Alain Jaume, Deputy Head of Unit.
Lock Tuning. Overview Data definition language (DDL) statements are considered harmful DDL is the language used to access and manipulate catalog or metadata.
Gaia An Infrastructure for Active Spaces Prof. Klara Nahrstedt Prof. David Kriegman Prof. Dennis Mickunas
Distributed Programming Infrastructure for Ubiquitous Presence Joint research between Compaq CRL and Georgia Tech (*) Researchers: Kishore Ramachandran.
WP6 Emotion in Interaction Embodied Conversational Agents WP6 core task: describe an interactive ECA system with capabilities beyond those of present day.
Software Connectors. What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern.
INTRODUCTION TO GRID & CLOUD COMPUTING U. Jhashuva 1 Asst. Professor Dept. of CSE.
INTRODUCTION TO HIGH PERFORMANCE COMPUTING AND TERMINOLOGY.
PEER-TO-PEER NETWORK FAMILIES
Main issues: • What do we want to build • How do we write this down
SOFTWARE DESIGN AND ARCHITECTURE
Mobile Operating System
Parallel Programming By J. H. Wang May 2, 2017.
Complexity Time: 2 Hours.
CS399 New Beginnings Jonathan Walpole.
Grid Computing.
Software Architecture in Practice
Mobile Agents.
Pervasive Computing Happening?
An Introduction to Software Architecture
CS510 - Portland State University
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Presentation 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 nettracker 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-Fi tracker 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 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)