CDx: A Family of Real-time Java Benchmarks Tomas Kalibera, Jeff Hagelberg, Filip Pizlo, Ales Plsek, Ben Titzer, Jan Vitek Purdue University
Real-time Java Applications ● Shipboard computing ● US Navy DDG1000 Destroyer ( 5 mio lines of code, RTGC) ● Avionics ● Zedasoft's Java Flight Simulator ● Boeing ScanEagle UAV ● EADS Barracuda UAV ● Financial information and trading systems
Real-time Java Applications ● Shipboard computing ● US Navy DDG1000 Destroyer ( 5 mio lines of code, RTGC) ● Avionics ● Zedasoft's Java Flight Simulator ● Boeing ScanEagle UAV ● EADS Barracuda UAV ● Financial information and trading systems
Real-time Java Benchmarks ● Micro-benchmarks – low-level latencies ● Suramadu ● RTJPerf ● … ● Adapted non-rt benchmarks ● SPEC JBB RT 2005 ● Available real-time application benchmarks ?
(Computer) Benchmark Is... A model application of a real application, which is easier to run than the real application, but still bears performance characteristics representative of the real application The model should be close enough to capture interplay of many aspects of the application, execution environment, operating system, and hardware, including those we did not anticipate or could not analyze...
Hard Real-time Systems ● Operations have deadlines that must never be missed ● Systems designed to be provable not to miss a deadline (schedulability analysis), which requires further simplifications, i.e. ● i.e. periodic tasks with a fixed period and limited communication ● Lots of slack time
Real-time Application Benchmark for Java Should... ● Have deadlines ● Challenging enough for underlying hardware ● Comparable to deadlines in real applications ● Never miss deadlines ● Checking of deadlines should be included ● Programs/configurations with even rarely missed deadlines should be fixed or discarded ● Designed to be (once) provable schedulable ● Slack time, periodic tasks, … ● (Use real-time features and API - RTSJ...)
CDx: Aircraft Collision Detector Radar frames Collision detector Radar (Air traffic simulator)
CDx: Aircraft Collision Detector Radar frames Collision detector Radar (Air traffic simulator)
Air Traffic Simulator ● Aircraft trajectory configurations ● Text file, aircraft per line ● Functions for every coordinate in time – x(t), y(t), z(t) – Common math functions (goniometric, trigonometric, …) Call sign x(t) y(t) z(t)
Synthetic Air Traffic Examples
CDx: Aircraft Collision Detector Radar frames Collision detector Radar (Air traffic simulator)
Radar Frame ● Current position of every aircraft ● Aircraft identified by a call sign (string) ● Includes 3-d coordinates of every aircraft
CDx: Aircraft Collision Detector Radar frames Collision detector Radar (Air traffic simulator)
Collision Detector ● Periodic real-time task (i.e. 10ms, 4ms) ● Processes a single radar frame per release ● Algorithm 1. Calculate motion vectors of aircraft based on last known positions (previous radar frame) 2. Identify 2-d (x,y) quadrants with multiple aircraft 3. Detect 3-d collisions in the 2-d quadrants
Instrumentation and Measurement T R j C j J j r s c r t j t j t j t j 1
Sample Results: Response Time Histogram Box-plot Run-sequence plot
Detector Configurations ● RTSJ with scoped memory ● RTSJ with RTGC ● Plain Java ● (Upcoming) SCJ with scoped memory
Simulator Configurations ● Full simulation (non-RT application) ● Pre-simulation to memory buffer or concurrent execution with detector ● Reading from binary file ● Air traffic is loaded from file into memory at start-up ● Self-contained air traffic ● The byte-code includes pre-compiled air traffic ● For embedded systems / verification tools
Noise Generators ● Stress for memory management ● Allocation in detector not challenging enough even under highly synthetic air traffic with many collisions ● Configurable allocation noise generator in detector ● Background noise ● Cdx only has real-time tasks and only one ● Running SPEC JVM 98 javac at the background ● Running the air traffic simulator concurrently with detector
Limitations ● CD application logic ● Not designed for worst-case ● Never used in a real system (not necessarily realistic) ● Complexity ● Only a single periodic task … we need more real-time Java application benchmarks ! (one is not enough)
Summary ● CDx is a family of real-time Java application benchmarks for ● RTSJ with scopes ● RTSJ with RTGC ● (and runs in plain Java) ● Implements a simple real-time application ● Single periodic task with a deadline ● Open source http://www.ovmj.org/cdx http://www.cs.purdue.edu/~tkaliber/cdx
Recommend
More recommend