Stampede Overview Joint research between HP CRL and Georgia Tech (*) Kishore Ramachandran (*) Jim Rehg(*), Phil Hutto(*), Ken Mackenzie(*), Irfan Essa(*), Kath Knobe, Jamey Hicks Students (*): Sameer Adhikari, Arnab Paul, Bikash Agarwalla, Matt Wolenetz, Nissim Harel, Hasnain Mandviwala, Yavor Angelov, Junsuk Shin, Rajnish Kumar, Ilya Bagrak, Martin Modahl, David Hilley Distributed Ubiquitous Computing Hardware Model sensors, actuators, embedded processors, PDAs, laptops, clusters… camera Skiff camera Skiff Sensors Actuators Sensor Fusion Data Aggregators Unix / Linux / NT cluster “OCTOPUS” DIAGRAM head / arms / tentacles Killer App? Application context distributed sensors with varying capabilities control loop involving sensors, actuators rapid response time at computational perception speeds Application Scenarios Mobile robots Smart vehicles Aware homes Real-life emergencies natural and man-made disaster response earthquakes, twisters, fire, terrorist situations Environmental monitoring Augmented reality applications viruses, pollution, … animals and birds in natural habitats training for hazardous situations battlefield management Interactive animation Application Characteristics Physically distributed heterogeneous devices Distributed mobile sensing and actuation Interfacing and integrating with the physical environment Information acquisition, processing, synthesis, and correlation streaming high BW data such as audio and video low BW data such as from a haptic sensor time-sequenced data Dynamic computation continuum from low end device-level filtering to high end inference Research Issues Stream-oriented and time-sequenced data Heterogeneity of Components Resource management High Availability Clients leave and join arbitrarily Security and Privacy Stampede Project Theme seamless programming system spanning sensors and backend servers d-stampede: common programming paradigm across widely varying architectures [ICDCS 2002] supports development of pervasive computing applications Stampede computational model: a dynamic thread-channel graph thread Channel o_conn thread Channel i_conn thread thread Channel •put(ts, item) thread Channel •get(ts, item) •consume(ts) •many to many connections •time sequenced data •correlation of streams •automatic GC Experiences with Stampede Color-based people tracker for SmartKiosk (Jim Rehg) Digitizer Change Detection Motion Mask Target Detection Model 1 Location Histogram Histogram Model Target Detection Model 2 Location Video Frame Model 1 Model 2 Color-Based Tracking Example Video Textures (Irfan Essa) Generate an infinite video sequence from a finite set of video frames -embarrassingly parallel (comparison of images) -data distribution from source the main challenge -breaking image into strips to fit the computation in caches secondary challenge Multipoint video/audio capture STM . . skiff Stampede client (C) skiff Stampede client (C) STM STM Cluster Stampede Application (C) Multipoint Video Demo Ongoing Work Media broker architecture Aspect-oriented programming support STAGES language and compiler Dynamic multi-cluster implementation D-Stampede Web Service resource naming and discovery data fusion (fusion channels) asynchronous notification .NET implementation Models for reasoning about failures Security and privacy issues