Cooperative Computing: A Computing Model for Large Networks of Embedded Systems Cristian Borcea, Phillip Stanley-Marbell, Kiran Nagaraja, Liviu Iftode Rutgers University
Networks of Embedded Systems (NES) Today Characteristics Limited resources Large scale Heterogeneous Volatile Unattended Example: Networks of Sensors Applications: data collection/dissemination Research: ad-hoc routing
Next Generation NES More powerful systems ( processor, memory, network ) More demanding applications ( object tracking ) How to execute user-defined distributed applications ? computing model system architecture
Traditional Distributed Computing Assumptions functionally homogeneous nodes assumes stable configuration fixed addressing scheme exact results Inadequate for NES
The Cooperative Computing Model Distributed computation on large scale ad-hoc networks The set of nodes involved in computation: identified by their properties discovered using application controlled routing Partial execution acceptable when a certain Quality of Result ( QoR ) is met
Application Example Compute the average temperature over red nodes QoR: average over at least 3 red nodes Red nodes used for computation Blue and green nodes used as intermediate hops
System Architecture Smart Messages ( SMs ) migrate through the network searching for target nodes execute on each node Minimal System Support admission scheduling and execution synchronization communication, but no routing
Smart Messages SignatureResource TableCode BricksData Bricks Code and data bricks Signature-based authentication for access control Resource table: estimated resource requirements for admission control
System Support Operating System Hardware Tag Space Virtual Machine Admission Manager
Tag Space Tasks create, delete, read, write tags Tags discarded when lifetime expires Temperature QxwyZ Name Signature Lifetime Data
Admission At arrival SM presents its resource requirements tags to be created/accessed estimated memory requirements, execution time, network traffic Each admitted SM generates a new task
Execution Tag Space red tag ? Computation: sum=5+2 sum=5 sum=7 c2c1d1d2c1c2d1d2 c1 c2 d1 d2 Task1 Node red=2
Scheduling and Synchronization FIFO scheduling Non-preemptive execution with resource protection Update-based synchronization on tags
Self-Routing Routing done entirely by the application SMs carry code and data for routing Tag space stores signed routing information
Self-Routing Example Network Red tag ? rRedval c1c2d1d2 c1 d1 c2 d2 c2 d2 rRed Task1 Spy SM sent Spy SM returns Task2 c2d2 c2d2 c1c2d1d2 Tag Space Tag Space Node iNode j
Prototype Software Infrastructure uClinux Admission Manager Modified KVM Message Queue Tag Space Temporary Receive SM Send SM uCsimm & Bluetooth
Contributions Cooperative Computing: distributed computing model for networks of embedded systems System architecture: Smart Messages active carriers of data integrate computation and communication application controlled routing ( self-routing ) Accepted as position summary at HotOS VIII
Future Work Evaluate the tradeoffs between flexibility and overhead of migration Define a partially successful execution Enforce more complex security policies Simulate various applications and routing algorithms Integrate energy in the model