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