Avrora: Precise and Scalable Sensor Simulation Platform
450 likes | 560 Views
"Discover Avrora, a highly accurate sensor network simulator enabling precise timing and scalable simulations for wireless sensor networks. Explore its features, goals, and innovative software architecture designed for energy accuracy and detailed instrumentation."
Avrora: Precise and Scalable Sensor Simulation Platform
E N D
Presentation Transcript
AvroraScalable Sensor Simulation with Precise Timing Ben L. Titzer UCLA CENS Seminar, February 18, 2005 IPSN 2005
Background - WSNs • Wireless Sensor Networks • Microcontroller and battery powered • Wireless communication • Event-driven programming model • Programmed with TinyOS and nesC Mica2 Dot - based on Atmel AVR microcontroller http://compilers.cs.ucla.edu/avrora
Background - Microcontrollers • Microcontrollers are small • 128KB code, 4KB RAM, 4KB EEPROM • Processor, memory, IO on a single chip • 4 - 16mhz clockspeed • Interrupt-driven programming model • No operating system http://compilers.cs.ucla.edu/avrora
Motivation • Developing sensor software is hard • Constrained resources, bare hardware • Narrow interface for debugging • Delicately timed driver code • Distributed communication • Precise measurements are difficult • Current tools do a poor job • TOSSIM, AtEmu http://compilers.cs.ucla.edu/avrora
The Question • Can we achieve simulation of entire sensor networks? http://compilers.cs.ucla.edu/avrora
The Question • Can we achieve simulation of entire sensor networks? • --[1] And make it precise? http://compilers.cs.ucla.edu/avrora
The Question • Can we achieve simulation of entire sensor networks? • --[1] And make it precise? • --[2] And make it flexible? http://compilers.cs.ucla.edu/avrora
The Question • Can we achieve simulation of entire sensor networks? • --[1] And make it precise? • --[2] And make it flexible? • --[3] And make it fast? http://compilers.cs.ucla.edu/avrora
The Question • Can we achieve simulation of entire sensor networks? • --[1] And make it precise? • --[2] And make it flexible? • --[3] And make it fast? • --[4] And make it scalable? http://compilers.cs.ucla.edu/avrora
The Goals of Avrora • Build a simulator for sensor networks • Cycle accurate • Energy accurate • Simulates sensor devices • Scales to large sensor networks • Allow detailed profiling and instrumentation http://compilers.cs.ucla.edu/avrora
[1] Precision • Can we make it precise? • Instruction-level simulation • Cycle accurate • Accurate device models • Accurate radio / interference model • Well-known http://compilers.cs.ucla.edu/avrora
[2] Flexibility • Can we make the simulator flexible? • Well-designed software architecture • Clear interfaces • Implemented in Java, object-oriented • Instrumentation infrastructure • “Nonintrusive Precision Instrumentation of Microcontroller Software” submitted to LCTES 2005 http://compilers.cs.ucla.edu/avrora
Avrora Software Architecture Platform On-chip devices are controlled by the program through IOReg objects Off-chip devices are controlled through individual pins or through UART and SPI interfaces Time-triggered behavior is accomplished by inserting events into the event queue Microcontroller Simulator Interpreter Event queue interface IOReg interface SPI Ports Timer On-chip devices Pin interface SPI interface Radio LEDs Off-chip devices http://compilers.cs.ucla.edu/avrora
[3] Speed - Event Queue • How can we achieve speed while retaining cycle accuracy? • Naïve implementation scales poorly • Event interface simplifies devices • Better performance • Key to achieving parallelism for sensor network simulations http://compilers.cs.ucla.edu/avrora
4 24 7 12 83 Event Queue Illustration Simulator DeltaQueue Interpreter Timer0Event ProfilingEvent UARTEvent • Interpreter tracks cycles consumed by each instruction • Decrement head of queue and fire event(s) when necessary • Retains cycle accuracy • Allows for sleep optimization http://compilers.cs.ucla.edu/avrora
Single-node Performance http://compilers.cs.ucla.edu/avrora
[4] Scalability • Sensor networks have many nodes (10’s-1000’s) • Software controlled radios • Micro-second level interactions • High-fidelity simulation needed for precise measurements http://compilers.cs.ucla.edu/avrora
The AtEmu Approach • Introduce global clock • Step all nodes one clock cycle at a time • Compute radio waveform (bit level) • Problems: • Slow • Scales poorly - O(n^2) interactions • No parallelism http://compilers.cs.ucla.edu/avrora
Observations • Communication has latency • Nodes only influence each other through communications • Other than that, nodes run in parallel • Hmm…. http://compilers.cs.ucla.edu/avrora
Parallel Simulation • Allow all nodes to run in parallel • One thread per node • Extends single-node simulation to network • Better overall simulation performance • New Problem: • Synchronization necessary to preserve timing and order of communications • Efficient solutions? http://compilers.cs.ucla.edu/avrora
Receive A1 Send-Receive Problem • Nodes send bytes to each other • No node should be allowed to run too far ahead of other nodes that might try to send a byte to it T=k+L T=0 T=k Send A1 Node A Node B Node B should never be more than L cycles ahead of A http://compilers.cs.ucla.edu/avrora
RSSI Sampling Problem • Nodes can sample current radio traffic • Sample cannot be computed until all possible transmitters have passed the time when sampling was begun T=0 T=k+S T=k Send A1 Node A Node B Node B cannot complete sample until node A passes time k http://compilers.cs.ucla.edu/avrora
Reality • RSSI sampled infrequently • Nodes both send and receive • Latency L to send a byte on mica2 • 7372800hz / 2400bps = 3072 cycles • Sampling time S to estimate RSSI • 13 ADC cycles * 64 = 832 cycles http://compilers.cs.ucla.edu/avrora
Two Approaches • Synchronization Intervals • Threads can’t run too far ahead • Period has to be smaller than L • Utilize event queue of each simulator • Wait for Neighbors • Each thread waits for neighbors when necessary (sample or receive) • Requires fast global data structure • Avrora uses both http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B RSSI Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B RSSI Send C1 Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B RSSI Send C1 Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B RSSI Send C1 Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C1 D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B Send C2 RSSI Send C1 Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C1 C1 D B E C A Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A Node B Send C2 RSSI Send C1 Node C Node D Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C1 C1 D B A E C Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A RSSI Node B Send C2 RSSI Send C1 Node C Node D RSSI Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C1 C1 D B A E C Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A RSSI Node B Send C2 RSSI Send C1 Node C Node D RSSI Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C2 C1 C1 C2+E1 D B A E C Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A RSSI Node B Send C2 RSSI Send C1 Node C Node D Send E1 RSSI Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C2 C1 C1 C2+E1 D B A E C Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A RSSI Node B Send C2 RSSI Send C1 Node C Node D Send E1 RSSI Node E http://compilers.cs.ucla.edu/avrora
Delivery point Synchronization point Starting point C2 C1 C1 C2+E1 D B A E C Synchronization Illustration Network T=0 T=1L T=2L T=3L Node A RSSI Node B Send C2 RSSI Send C1 Node C Node D Send E1 RSSI Node E http://compilers.cs.ucla.edu/avrora
Results - Scalability http://compilers.cs.ucla.edu/avrora
Results - Parallelism http://compilers.cs.ucla.edu/avrora
Measurements • Accurate timing useful for • AEON: power and lifetime estimation • MAC layer tuning • Debugging driver code • Latency estimation for in-network processing • Real-time monitoring http://compilers.cs.ucla.edu/avrora
Channel Utilization http://compilers.cs.ucla.edu/avrora
Partial Preamble Loss • Real radios take time to lock on • First few bits of transmission lost • Subsequent bytes misaligned • MAC software layer must compensate • Latency L between transmission and first reception larger • Admits more concurrency in simulation http://compilers.cs.ucla.edu/avrora
R: A2+A3 R: A2+A3 Adaptive Synchronization • Assume first k [kl, kh] bits lost of first bytes transmitted • Latency for first byte is then: Lf = L + kl * cyclesbit T=0 T=k T=k+L T=k+2L T=k+3L S: A4 S: A1 S: A3 S: A2 Node A Node B kl http://compilers.cs.ucla.edu/avrora
Can we achieve simulation of entire sensor networks? --[1] And make it precise? yes --[2] And make it flexible? yes --[3] And make it fast? yes --[4] And make it scalable? yes Back to the Question http://compilers.cs.ucla.edu/avrora
Future Work • Performance Improvements • Sleeping nodes, M:N thread model • Single-node improvements • Port to other mote platforms • Co-simulation with real network • Implement partial preamble loss • Measure properties of k http://compilers.cs.ucla.edu/avrora
Acknowledgements • NSF: money • Jens Palsberg: patience • Daniel Lee: device implementations • Simon Han: testing, timing validation • Olaf Lansiedel: AEON energy model • CENS: access to a stupidly big Sun V880 machine • Sun: for donating said machine http://compilers.cs.ucla.edu/avrora