I had been making some efficiency tweaks to a few things, particularly GLXLIB, the Galaxy Object Time System when I began to notice that programs sometimes appeared to not be using any processor time at all.  I found that the normal JSYS that returns fork run time (RUNTM%) only gives millisecond resolution.

Tops-20 exposes a 100 Khz interface via the HPTIM% JSYS.  'High precision' in this case meant the maximum internal clock rate of the DK10 real time clock.  So, although the KL10 had a megahertz clock, Tops-20 lops off a decimal order of magnitude, presumably to remain compatible with TENEX.  The maximum resolution is thus 10 microseconds, a hundred times the RUNTM% resolution.

Unfortunately, the HPTIM% JSYS only works for your own process, not others.  So, I modified the monitor code to be able to get high precision run times for any forks in the job.  I then modified the EXEC to display the high precision times if requested.  What I also found out was that, by default, the EXEC will only display a tenth of a second, whereas RUNTM% will return two decimal orders of magnitude more.

The comparisons below are perhaps of interest.  About the shortest I've seen is 1.5 ms (0.00015).  Given the increasing speed of simulations, one assumes that DK10 resolution will be exceeded at some point.


$i fork
    ORION (1): Background, SLEEP at 767721, 0:00:00.1
    QUASAR (2): Background, SLEEP at 767721, 0:00:00.0
    MOUNTR (3): Background, SLEEP at 2420, 0:00:00.0
    BATCON (4): Background, SLEEP at 767723, 0:00:00.1
    NMLT20 (5): Background, SLEEP at US%DES+165, 0:00:00.0
 => FAL (6): Background, SLEEP at 767721, 0:00:00.0
       Fork 13: SLEEP at 767723, 0:00:00.0
       Fork 12: SLEEP at 767723, 0:00:00.0
       Fork 11: SLEEP at 767723, 0:00:00.0
       Fork 10: SLEEP at 767723, 0:00:00.0
       Fork 7: SLEEP at 767723, 0:00:00.0
$
$i fork /high-precision
    ORION (1): Background, SLEEP at 767721, 0:00:00.12459
    QUASAR (2): Background, SLEEP at 767721, 0:00:00.05135
    MOUNTR (3): Background, SLEEP at 2420, 0:00:00.06751
    BATCON (4): Background, SLEEP at 767723, 0:00:00.19957
    NMLT20 (5): Background, SLEEP at US%DES+165, 0:00:00.09560
 => FAL (6): Background, SLEEP at 767721, 0:00:00.08322
       Fork 13: SLEEP at 767723, 0:00:00.01310
       Fork 12: SLEEP at 767723, 0:00:00.01577
       Fork 11: SLEEP at 767723, 0:00:00.00381
       Fork 10: SLEEP at 767723, 0:00:00.00362
       Fork 7: SLEEP at 767723, 0:00:00.00320