home
CPU OVERHEAD III,
Via Cycle Timing
(a.k.a. fixed work)
Last Modified:  24 May 2001

Notes after initial post:   None.
 
 

The purpose and use of this test is quite similar to CPU Overhead II's  fixed time method and so many details are not restated here.  The main difference is that the timing code has been rewritten so that it measures how much time it takes to do a fixed amount of work rather than timing how much work could be done in a fixed amount of time.  Here are the results.
 
 
RESULTS 
Data  is available.  As can be seen, expected values of percent user time closely approximate that actually  measured. 

This data represents the following cost to the user per interrupt in nanoseconds:
     average:          11,120
     sample STD:        333

The expected values are calculated using the above average cost and merely represent how well the actual values collectively represent a constant cost per interrupt.  The calculation is basically subtracting the average cost from the time between two interrupts and then dividing the result by the time between two interrupts; this corresponds to the time between interrupts that did not go to handling the interrupt.

The above statistical values correlate well with the corresponding values from the fixed time method of CPU Overhead II.   Therefor, the fixed work method produces results that are at least on a par with the fixed timing method.
 
 

NEW CODE
The code for this test essentially consists of one file:   worker.C.  The method involves doing a set number of increments in a for loop and timing how long that work took.  The main function of worker.C repeats this timing as many times as desired and calculates the above statistics.  Each data point of the graph represents 8 timing runs of varying length (see the data for times).  Also, the first timing run is not included in the statistical data.

The  Makefile  provides the usual target files including the executable "FixedWorker."
 

CARD AND HOST INFORMATION:   The tests were run on an FIC VA-503+ motherboard, 500 MHz AMD-K6(tm)-2 processor, and Red Hat 6.2 with Linux Kernel 2.2.14-5.0.  The tests
used a single Myrinet card having the below information.

LANai 7.2 9947
PCIDMA 1.0 9947
Myrinet M2L-PCI64/2-3.0
1999 Myricom Inc.
357957
M2L-PCI64A-2
40681
A-3935  3952
00:60:dd:7f:cd:21


Bill Lawry