Workload Characterization

The CDx benchmark is highly configurable. We provide two basic workloads :

COL
NOI
VM
RTSJ, RTGC RTSJ, RTGC
Period
10 ms 4 ms
Collisions
YES NO
Detector Noise
NO YES
Background Noise
NO YES
Number of aircraft
40 20
Duration
100s 80s
Running script
run_rts_col.sh run_rts_noi.sh

Apart from these two workloads we provide a wide set of various workloads. The workloads are available in the input/ directory.

Collision Detector Computation Sequence

The detection algorithm implemented by CD is a single threaded hard real-time task which periodically receives a stream of aircraft positions and must determine if any of these aircraft are on a collision course. In RTSJ, the task is implemented as 10Hz No- HeapRealtimeThread. In every loop it creates a list of motions representing movements of aircraft from their previous states and computes a list of collision courses. A list of recent aircraft positions, called StateTable, is being updated and kept between each loop of the algorithm. Since the computation logic requires allocation of temporary memory to store intermediate results, a scoped memory region is used.

The sequence diagram of implemented algorithm can be seen on the picture (the class names are modified in order to increase understandability):

Sequence Diagram
Collision Detector Algorithm

Collision checking is a full 3-d collision detection. The algorithm is based on checking the distance of two points (centers of the aircraft) traveling in time. If these points ever get closer than the proximity radius, a collision is detected. The test assumes that the speed of each of the aircraft is constant between two consecutive radar frames and that the aircraft trajectories are line segments. The calculations involved in the algorithm are described in Cdx: A Family of Real-time Java Benchmarks paper (see Publications).