1 cooperative computing for distributed embedded systems* cristian borcea, deepa iyer, porlin kang,...
Post on 21-Dec-2015
218 views
TRANSCRIPT
![Page 1: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/1.jpg)
1
Cooperative Computing for Distributed Embedded Systems*
Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode
Division of Computer and Information SciencesRutgers University
* Work supported in part by the NSF under the ITR grant ANI-0121416
![Page 2: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/2.jpg)
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 ?
![Page 3: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/3.jpg)
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: 802.11, Bluetooth Volatile, possibly mobile
WildlifeMonitoring
IntelligentHighways
CollaborativeRobots
SensorNetworks
![Page 4: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/4.jpg)
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
![Page 5: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/5.jpg)
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
![Page 6: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/6.jpg)
6
Outline
Motivation
Cooperative Computing
Smart Messages (SM)
Tag Space
Node Architecture & SM Lifecycle
API & Examples
Prototype & Simulation Results
Conclusions
![Page 7: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/7.jpg)
7
Execution Migration Example
Data migration
Bob’s dinner:
AppetizerEntreeDessert
Execution migration
![Page 8: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/8.jpg)
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
![Page 9: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/9.jpg)
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
CodeBricks
DataBricks
ExecutionState
SignatureResource
Table
![Page 10: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/10.jpg)
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
![Page 11: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/11.jpg)
11
Node Architecture
AdmissionManager
VirtualMachine
Tag Space
OS & I/O
SM Arrival SM Migration
![Page 12: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/12.jpg)
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
![Page 13: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/13.jpg)
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)
![Page 14: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/14.jpg)
14
Migration
Appetizer $5 Entree $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);
Networkeat(Entree);
eat(Appetizer);migrate_SM(Entree);
![Page 15: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/15.jpg)
15
Self Routing
1
Entree $10
2 3 4
route_to_Entree 3
migrate_SM(Entree, timeout)
sys_migrate(2) sys_migrate(3) sys_migrate(4)
route_to_Entree 2 route_to_Entree 4
Application controls routing in two ways:
Can choose among multiple migrate_SM
implementations
Can change its routing algorithm during execution
![Page 16: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/16.jpg)
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
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
![Page 17: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/17.jpg)
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)
![Page 18: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/18.jpg)
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:
![Page 19: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/19.jpg)
19
Evaluation goals
Expressiveness Ability to implement various user-defined distributed
applications
Performance Cost of execution migration vs. data migration
Practicality SM prototype
![Page 20: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/20.jpg)
20
Prototype Implementation
Compaq’s iPAQs running Linux
802.11 & Bluetooth for wireless communication
Modified version of Sun’s Java KVM
![Page 21: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/21.jpg)
21
Micro-benchmark Results
Tag Space Operation
Time (microsec)
createTag 55.8
deleteTag 30.8
readTag 25.0
writeTag 28.0
block_SM 24.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 802.11 452.8 ms with Bluetooth
![Page 22: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/22.jpg)
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]
![Page 23: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/23.jpg)
23
Smart Messages vs. Message Passing
Directed Diffusion SPIN
![Page 24: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/24.jpg)
24
Related Work
Mobile Agents
Active Networks
Mobile ad hoc networking
Pervasive Computing
Sensor Networks
![Page 25: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/25.jpg)
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
![Page 26: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/26.jpg)
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
![Page 27: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/27.jpg)
27
Thank you !
http://discolab.rutgers.edu/sm/
![Page 28: 1 Cooperative Computing for Distributed Embedded Systems* Cristian Borcea, Deepa Iyer, Porlin Kang, Akhilesh Saxena, and Liviu Iftode Division of Computer](https://reader036.vdocuments.us/reader036/viewer/2022062407/56649d5d5503460f94a3b909/html5/thumbnails/28.jpg)
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
Source Destination