1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer.

Slides:



Advertisements
Similar presentations
Agents & Mobile Agents.
Advertisements

Mobile Agents Mouse House Creative Technologies Mike OBrien.
Threads, SMP, and Microkernels
Spatial Views: Space-aware Programming for Networks of Embedded Systems Yang Ni, Ulrich Kremer, and Liviu Iftode Rutgers University This work has been.
Decentralized Reactive Clustering in Sensor Networks Yingyue Xu April 26, 2015.
Sensor Network Platforms and Tools
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
1 Self-Routing in Pervasive Computing Environments using Smart Messages Cristian Borcea, Chalermek Intanagonwiwat, Akhilesh Saxena (Rutgers University),
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Cooperative Computing: A Computing Model for Large Networks of Embedded Systems Cristian Borcea, Phillip Stanley-Marbell, Kiran Nagaraja, Liviu Iftode.
OS Fall ’ 02 Introduction Operating Systems Fall 2002.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
Threads 1 CS502 Spring 2006 Threads CS-502 Spring 2006.
Outdoor Distributed Computing* Cristian Borcea Department of Computer Science New Jersey Institute of Technology * Work done at Rutgers prior to September.
3.5 Interprocess Communication
Turning Ad Hoc Networks into Distributed Service Providers Cristian Borcea Department of Computer Science New Jersey Institute of Technology.
Outdoor Distributed Computing Cristian Borcea Department of Computer Science New Jersey Institute of Technology.
Middleware for Cooperative Computing on Large Ad-hoc Networks of Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena and Liviu.
Spatial Programming using Smart Messages: Design and Implementation Cristian Borcea, Chalermek Intanagonwiwat, Porlin Kang, Ulrich Kremer, and Liviu Iftode.
Programming Computers Embedded in the Physical World Liviu Iftode, Andrzej Kochut University of Maryland Cristian Borcea, Chalermek Intanagonwiwat, Ulrich.
 2004 Deitel & Associates, Inc. All rights reserved. Chapter 4 – Thread Concepts Outline 4.1 Introduction 4.2Definition of Thread 4.3Motivation for Threads.
Computer System Overview Chapter 1. Basic computer structure CPU Memory memory bus I/O bus diskNet interface.
TrafficView: A Driver Assistant Device for Traffic Monitoring based on Car-to-Car Communication Sasan Dashtinezhad, Tamer Nadeem Department of CS, University.
CS 3013 & CS 502 Summer 2006 Threads1 CS-3013 & CS-502 Summer 2006.
1 Threads Chapter 4 Reading: 4.1,4.4, Process Characteristics l Unit of resource ownership - process is allocated: n a virtual address space to.
1 Energy Efficient Communication in Wireless Sensor Networks Yingyue Xu 8/14/2015.
Design and Implementation of a Single System Image Operating System for High Performance Computing on Clusters Christine MORIN PARIS project-team, IRISA/INRIA.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
P2P Systems Meet Mobile Computing A Community-Oriented Software Infrastructure for Mobile Social Applications Cristian Borcea *, Adriana Iamnitchi + *
Advanced Operating Systems CIS 720 Lecture 1. Instructor Dr. Gurdip Singh – 234 Nichols Hall –
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System.
The MobiSoC Middleware for Mobile Social Computing Cristian Borcea, Ankur Gupta, Achir Kalra, Quentin Jones, Liviu Iftode* Department of Computer Science.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
OS provide a user-friendly environment and manage resources of the computer system. Operating systems manage: –Processes –Memory –Storage –I/O subsystem.
G-JavaMPI: A Grid Middleware for Distributed Java Computing with MPI Binding and Process Migration Supports Lin Chen, Cho-Li Wang, Francis C. M. Lau and.
 2004 Deitel & Associates, Inc. All rights reserved. 1 Chapter 4 – Thread Concepts Outline 4.1 Introduction 4.2Definition of Thread 4.3Motivation for.
Heavy and lightweight dynamic network services: challenges and experiments for designing intelligent solutions in evolvable next generation networks Laurent.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Comparison of Distributed Operating Systems. Systems Discussed ◦Plan 9 ◦AgentOS ◦Clouds ◦E1 ◦MOSIX.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Threads G.Anuradha (Reference : William Stallings)
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Mobile Agent Migration Problem Yingyue Xu. Energy efficiency requirement of sensor networks Mobile agent computing paradigm Data fusion, distributed processing.
Disco : Running commodity operating system on scalable multiprocessor Edouard et al. Presented by Vidhya Sivasankaran.
A policy-based per-flow mobility management system design
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
Distributed System Services Fall 2008 Siva Josyula
Internet of Things. IoT Novel paradigm – Rapidly gaining ground in the wireless scenario Basic idea – Pervasive presence around us a variety of things.
Martin Kruliš by Martin Kruliš (v1.1)1.
Sunpyo Hong, Hyesoon Kim
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Cloud Computing – UNIT - II. VIRTUALIZATION Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary->
Building Wireless Efficient Sensor Networks with Low-Level Naming J. Heihmann, F.Silva, C. Intanagonwiwat, R.Govindan, D. Estrin, D. Ganesan Presentation.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Processes Chapter 3. Processes in Distributed Systems Processes and threads –Introduction to threads –Distinction between threads and processes Threads.
Introduction to Operating Systems Concepts
Chapter 4 – Thread Concepts
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Advanced Operating Systems CIS 720
Chapter 4 – Thread Concepts
Improving java performance using Dynamic Method Migration on FPGAs
任課教授:陳朝鈞 教授 學生:王志嘉、馬敏修
Meng Cao, Xiangqing Sun, Ziyue Chen May 28th, 2014
Collaborative Offloading for Distributed Mobile-Cloud Apps
Lecture Topics: 11/1 General Operating System Concepts Processes
Threads Chapter 4.
Wireless Embedded Systems
Presentation transcript:

1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer and Information Sciences Rutgers University * Work supported in part by the NSF under the ITR grant ANI

2 Programming Challenge How to program ? A single computer Parallel computers Networks of computers Next challenge: Networks of Embedded Systems (NES) How to program NES to perform distributed tasks ?

3 Networks of Embedded Systems (NES) Large scale, ad hoc networks Heterogeneous node functionality: sensors, intelligent cameras, smart appliances Limited resources: CPU, memory, bandwidth, energy Wireless Communication: , Bluetooth Volatile, possibly mobile Wildlife Monitoring Intelligent Highways Collaborative Robots Sensor Networks

4 Sensor Networks Programmability issues: How to add a new application ? How to execute user-defined applications ? Our goal: a general programming model for NES Data dissemination Data collection

5 Traditional Distributed Computing Does Not Work for NES Traditional distributed computing Stable configuration of functionally homogeneous nodes Fixed-address naming and routing (e.g., IP) Failures are exceptions Networks of Embedded Systems Ad hoc configurations of nodes with different properties Content-based naming and routing Volatile nodes are common

6 Outline Motivation Cooperative Computing Smart Messages (SM) Tag Space Node Architecture & SM Lifecycle API & Examples Prototype & Simulation Results Conclusions

7 Execution Migration Example Data migration Bob’s dinner: Appetizer Entree Dessert Execution migration

8 Cooperative Computing Distributed computing over NES based on execution migration Smart Messages (SM) User-defined applications which migrate through the network Execute at each node in the path Application executes at nodes of interest Migration occurs between nodes of interest Tag Space Name-based node memory Persistent across SM executions Used by SM for addressing, storage, synchronization, I/O access

9 Smart Messages (SM) Code Bricks: application & routing code Data Bricks: mobile data carried by SM during migration Execution State: used for execution migration Signature: access control to Tag Space Resource Table: tags to be accessed, memory, CPU cycles, and generated traffic estimates Code Bricks Data Bricks Execution State Signature Resource Table

10 Tag Space Tag structure Application tags Created by SMs I/O tags Provide interface to OS and I/O system Name Signature Lifetime Data Appetizer SM_Sign 10 hours 5$ Neighbors Node1,Node2

11 Node Architecture Admission Manager Virtual Machine Tag Space OS & I/O SM ArrivalSM Migration

12 Admission Control At arrival each SM presents its resource requirements Admission manager decides whether or not to accept an SM Each accepted SM becomes a task ready for scheduling Optimization: code bricks are cached upon SM acceptance

13 Execution Takes place over a virtual machine (VM) Non-preemptive, but time bounded Interrupted by SM admission May block on tags to be updated Terminate or continue on another node (SM migration)

14 Migration Appetizer $5Entree $10 migrate_SM is a user-level library call Implements content-based routing using A one-hop migration primitive: sys_migrate Captures execution state, transfers SM one hop, resumes execution Routing tags eat(Appetizer); migrate_SM(Entree); eat(Entree); Network eat(Entree); eat(Appetizer); migrate_SM(Entree);

15 Self Routing 1 Entree $ route_to_Entree 3 migrate_SM(Entree, timeout) sys_migrate(2)sys_migrate(3)sys_migrate(4) route_to_Entree 2route_to_Entree 4 Application controls routing in two ways: Can choose among multiple migrate_SM implementations Can change its routing algorithm during execution

16 Cooperative SMs if (!route_to_Entree) create_SM(DiscoverySM, Entree); block_SM(route_to_Entree); sys_migrate(next_hop); Route_to_Entree ? Network DiscoverySM if (!route_to_Entree) create_SM(DiscoverySM, Entree); block_SM(route_to_Entree); sys_migrate(next_hop);  Applications can be dynamic collections of SMs cooperating to perform a distributed task route_to_Entree next_hop

17 Smart Messages API Operations on Tag Space createTag(name, lifetime, data), deleteTag(name) readTag(name), writeTag(name, value) SM Creation create_SM(code_bricks, data_bricks) SM Spawning spawn_SM() SM Synchronization block_SM(tag_name, timeout) SM Migration migrate_SM(tag_names, timeout), sys_migrate(next_hop)

18 Code Example migrate_SM(appetizer, timeout); eat(appetizer); migrate_SM(entree, timeout); eat(entree); migrate_SM(dessert, timeout); eat(dessert); migrate_SM(home, timeout); while(!readTag(tag)) if (readTag(route_to_tag)) sys_migrate(readTag(route_to_tag)); else create_SM(DiscoverySM, tag); block_SM(route_to_tag, timeout); Application: migrate_SM: //forward do{ sys_migrate(All_Neighbors); createTag(prev_to_tag, lifetime, prev_hop()); }while(!(readTag(tag) || readTag(route_to_tag))); //backward do{ sys_migrate(readTag(prev_to_tag)); createTag(route_to_tag, lifetime, prev_hop()); }while(readTag(prev_to_tag)); writeTag(route_to_tag, prev_hop()); DiscoverySM:

19 Evaluation goals Expressiveness Ability to implement various user-defined distributed applications Performance Cost of execution migration vs. data migration Practicality SM prototype

20 Prototype Implementation Compaq’s iPAQs running Linux & Bluetooth for wireless communication Modified version of Sun’s Java KVM

21 Micro-benchmark Results Tag Space Operation Time (microsec) createTag 55.8 deleteTag30.8 readTag25.0 writeTag28.0 block_SM24.6  Processor: 206 MHz Intel StrongARM  Bandwidth: 11 Mbps (802.11), 1Mbps (Bluetooth)  Single SM execution with one-hop discovery  SM: 829 bytes (731 code, 20 data, 78 stack)  55.2 ms with  ms with Bluetooth

22 Simulation Event-driven simulator extended with support for SM execution Accounts for both communication and computation time Accurate measurements for execution time by counting at the VM level the number of cycles per VM instruction Each node is simulated by a Java thread Thread scheduling controlled by simulator Implemented two previously proposed applications for sensor networks using SMs: Data collection: Directed Diffusion [Estrin ’99] Data dissemination: SPIN [Heinzelman ’99]

23 Smart Messages vs. Message Passing Directed DiffusionSPIN

24 Related Work Mobile Agents Active Networks Mobile ad hoc networking Pervasive Computing Sensor Networks

25 Conclusions Propose Cooperative Computing and Smart Messages for programming Networks of Embedded Systems (NES) Implement and evaluate two SM distributed applications Smart Messages offer a promising programming model for NES SM software distribution to be released this summer

26 Future Work Security Distributed trust model for SM Energy Use the simulator to design and analyze energy efficient routing algorithms Spatial Programming with SM We propose it as a novel paradigm for programming NES Network resources represented as {space:tag} spatial references Translation from SP programs to SM programs

27 Thank you !

28 SM Admission Protocol resource table and code brick IDs IDs for code bricks not cached at destination data bricks and missing code bricks insert task in Ready Queue SourceDestination