Space-Time Memory Kishore Ramachandran Georgia Tech Joint work with researchers from Compaq CRL (Rishiyur Nikhil, Jim Rehg, Bert Halstead, Chris Joerg,

Slides:



Advertisements
Similar presentations
Gordon Bell Bay Area Research Center Microsoft Corporation
Advertisements

Software Architecture Design Chapter 12 Part of Design Analysis Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
The Effect of Network Total Order, Broadcast, and Remote-Write on Network- Based Shared Memory Computing Robert Stets, Sandhya Dwarkadas, Leonidas Kontothanassis,
Operating System.
CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Resource Containers: A new Facility for Resource Management in Server Systems G. Banga, P. Druschel,
Stampede A Cluster Programming Middleware for Interactive Stream-oriented Applications Umakishore Ramachandran, Rishiyur Nikhil, James Matthew Rehg, Yavor.
Fault-Tolerant Real-Time Networks Tom Henzinger UC Berkeley MURI Kick-off Workshop Berkeley, May 2000.
3: OS Structures 1 OPERATING SYSTEM STRUCTURES PROCESS MANAGEMENT A process is a program in execution: (A program is passive, a process active.) A process.
CS 584. A Parallel Programming Model We need abstractions to make it simple. The programming model needs to fit our parallel machine model. Abstractions.
Class 6 LBSC 690 Information Technology Human Computer Interaction and Usability.
DisplayWall Software Architecture Yuqun Chen, Grant Wallace, Kai Li.
Parallel Programming Models and Paradigms
Towards Resource Aware Applications and Systems Michael B. Jones Microsoft Research.
CS 603 Threads, Processes, and Agents March 18, 2002.
Mapping Techniques for Load Balancing
Fundamentals of Python: From First Programs Through Data Structures
Chapter 1 The Challenges of Networked Games. Online Gaming Desire for entertainment has pushed the frontiers of computing and networking technologies.
Lecture 1 – Parallel Programming Primer CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed.
Stampede: A Cluster Programming Middleware for Interactive Stream- Oriented Applications Mamadou Diallo Leila Jalali CS224 Advances in Database Management.
Stampede Overview Joint research between HP CRL and Georgia Tech (*) Kishore Ramachandran (*) Jim Rehg(*), Phil Hutto(*), Ken Mackenzie(*), Irfan Essa(*),
SEC(R) 2008 Intel® Concurrent Collections for C++ - a model for parallel programming Nikolay Kurtov Software and Services.
IHPCL Research Review Karsten Schwan Matt Wolf Neil Bright and many additional Sciences/Eng/CS/ECE collaborators College of Computing Georgia Institute.
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Differentiated Access to Virtual Resources in Cloud Environments M. Fazio and A. Puliafito Euro-TM Workshop.
 The ability to develop step by step procedures for solving problems  She uses algorithmic thinking by setting up her charts.
UNIT - 1Topic - 1. An electronic device, operating under the control of instructions stored in its own memory unit, that can accept data (input), manipulate.
Threads, Thread management & Resource Management.
I-SPAN’05 December 07, Process Scheduling for the Parallel Desktop Designing Parallel Operating Systems using Modern Interconnects Process Scheduling.
Break-out Group # D Research Issues in Multimodal Interaction.
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.
Interactive Spaces Huantian Cao Department of Computer Science The University of Georgia.
A Distributed Programming Infrastructure for Integrating Smart Sensors Umakishore Ramachandran, Kenneth Mackenzie, Steve DeWeerth, Irfan Essa, Thad Starner.
Frank Casilio Computer Engineering May 15, 1997 Multithreaded Processors.
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.
CS333 Intro to Operating Systems Jonathan Walpole.
Welcome to CPS 210 Graduate Level Operating Systems –readings, discussions, and programming projects Systems Quals course –midterm and final exams Gateway.
Chapter 1: Applying Computer Basics – Lesson 1 © 2010, 2006 South-Western, Cengage Learning.
Computer supported cooperative work -Basic concepts
CS- 492 : Distributed system & Parallel Processing Lecture 7: Sun: 15/5/1435 Foundations of designing parallel algorithms and shared memory models Lecturer/
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
MediaBroker: An Architecture for Pervasive Computing Kishore Ramachandran ( College of Computing.
A Pattern Language for Parallel Programming Beverly Sanders University of Florida.
A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and Applications software. Systems.
Damian Gordon.  This module will serve as an introduction to Operating Systems.  It provides an overview of the major components of a computer system.
School of Computer Science Advanced Interfaces Group Extensive expertise in R&D of VR software systems and applications MAVERIK VR software downloaded.
Immersive Virtual Characters for Educating Medical Communication Skills J. Hernendez, A. Stevens, D. S. Lind Department of Surgery (College of Medicine)
Advanced media-oriented systems research: Ubiquitous capture, access, and interpretation n Faculty involved with RI-related projects l Kishore Ramachandran,
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.
Parallel Programming Models EECC 756 David D. McGann 18 May, 1999.
Klara Nahrstedt Spring 2009
Software Architecture
Lecture 1 – Parallel Programming Primer
Mobile App Development
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.
Chapter 1: Applying Computer Basics – Lesson 1
Unit I Flash Cards Start.
J. Hernendez, A. Stevens, D. S. Lind
Chapter 1 Introduction.
Pervasive Computing Happening?
Natural User Interaction with Perceptual Computing
Software Architecture
Presentation transcript:

Space-Time Memory Kishore Ramachandran Georgia Tech Joint work with researchers from Compaq CRL (Rishiyur Nikhil, Jim Rehg, Bert Halstead, Chris Joerg, Leonidas Kontothanassis and Kath Knobe) a concurrent dynamic data structure for flexible manipulation of time-sequenced data, with automatic GC

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.

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

Concurrent dynamic data structure Space-Time Memory space time threads connections channels

An Example chan1 chan2 chan3 space Digitizer Hi-Fi tracker Low-Fi tracker t1 t2 t3 t4 t5 virtual time... space-time memory D_t1 H-t1 L_t1

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

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.