bodytrack outputs a series of images representing the position of the body with the tracks believed position of the body overlaid. Here we show images for the last frame of the production sequence with and without perforation.
Reference output (no perforation):
Output with perforation and 15% distortion bound:
At the 15% QoS bound the perforated tracker runs 2.57x faster, while maintaining the track on the largest features of the body - the chest and the legs. The track of smaller parts of the body has been perturbed as a cost of the speedup.
Output with dynamic perforation in the case where 3/8 cores fail:
Here we show the output when dynamic perforation is employed to maintain performance in the case of core failures. The performance of the tracker is preserved despite the loss of 37.5% of the system's compute capacity. In additon the tracker is able to maintain a track on the chest, head, and legs despite this capacity loss.
Output with dynamic perforation in the case where core frequency drops to 60% of the original and then rises again:
For this experiment, the core frequency of the processor is dropped from 2.5 GHz to 1.6 GHz 1/4 of the way through the application. With 1/4 of the frames left to process, frequency is raised back to the original value. The runtime system dynamically perforates bodytrack to maintain performance during the period of low clock speed. When the clock frequency returns, the perforation is turned off and full QoS is restored. Perforation allows bodytrack to maintain the track despite the change in clock frequency.