﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
350	Add composite geometric mean MIPS result to instr_speed utility	trnsz@…	Jeffrey H. Johnson	"The instr_speed utility runs many (currently 15) different benchmarks and displays individual results, but provides no single average performance number, which would be very useful for quick comparisons.

The following proposed patch to `instr_speed.pl1` adds a running product and test count and calculates a composite geometric mean result, which is displayed after all tests have been run.

{{{
cpa instr_speed.pl1 instr_speed_1.pl1

A45       dcl (successes, pf_aborts, nanos, ls_aborts, type, histi, bucketmin, bucketmax, pf, ls, maxs, bucket, count, nargs) fixed bin;
Changed by B to:
B45       dcl (successes, pf_aborts, nanos, ls_aborts, type, histi, bucketmin, bucketmax, pf, ls, maxs, bucket, count, nargs, ntests) fixed bin;


A52       dcl (mips, mips_total, mip_rate) float bin;
Changed by B to:
B52       dcl (mips, mips_total, mips_prod, mip_rate) float bin;


Inserted in B:
B123                ntests = 0;
B124                mips_prod = 0e0;
Preceding:
A123
A124      /* Now run the test for the 15 possible types of sequences */


A158                     mip_rate = mips_total/float (successes);     /* calculate mip_rate */
Changed by B to:
B160                     ntests = ntests + 1;
B161                     mip_rate = mips_total/float (successes);     /* calculate mip_rate */
B162                     if mips_prod = 0e0 then mips_prod = mip_rate; /* initialize mips_prod */
B163                     else mips_prod = mips_prod * mip_rate;       /* calculate mips_prod */


Inserted in B:
B169
B170                call ioa_ (""^/* * * * * * * * * * * * * * * * * * * * * *^/"");
B171                call ioa_ (""COMPOSITE GEOMETRIC MEAN MIPS = ^6.3f^/"", mips_prod ** (1 / float (ntests)));
Preceding:
A164

Comparison finished: 5 differences, 14 lines.
}}}

Example output:
{{{
INSTRUCTION SPEED TEST -- 03/01/25  2239.9 pst Sat

                                                                               
* * * * * * * * * * * * * * * * * * * * * *

                                                                               
TEST 1: (lda/sta - even/odd)
                                                                               
MIPS AVE = 11.399, TIME AVE = 93, 87 NANOSECONDS
                                                                               
* * * * * * * * * * * * * * * * * * * * * *

                                                                               
TEST 2: (lda/sta - odd/even)
                                                                               
MIPS AVE = 11.393, TIME AVE = 95, 87 NANOSECONDS
                                                                               
* * * * * * * * * * * * * * * * * * * * * *

                                       
TEST 3: (lda/lda/lda...)
                                                                               
MIPS AVE = 13.237, TIME AVE = 83, 75 NANOSECONDS
                                                                               
* * * * * * * * * * * * * * * * * * * * * *

                                       
TEST 4: (lda/sta - even/odd bit29)
                                                                               
MIPS AVE = 11.500, TIME AVE = 93, 86 NANOSECONDS
                                                                               
* * * * * * * * * * * * * * * * * * * * * *

                                       
TEST 5: (eppbp/spribp - even/odd)
                                                                               
MIPS AVE = 12.360, TIME AVE = 87, 80 NANOSECONDS
                                                                               
* * * * * * * * * * * * * * * * * * * * * *

                                                                               
TEST 6: (eppbp/spribp - odd/even)
                                                                               
MIPS AVE = 13.037, TIME AVE = 82, 76 NANOSECONDS
                                                                               
* * * * * * * * * * * * * * * * * * * * * *
                                       

TEST 7: (eppbp/spribp - even/odd indirect)                        

MIPS AVE =  8.207, TIME AVE = 129, 121 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 8: (eppbp/spribp - odd/even indirect)

MIPS AVE =  8.654, TIME AVE = 120, 115 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 9: (eppbp/spribp - even/odd bit29) 

MIPS AVE = 12.063, TIME AVE = 92, 82 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 10: (eppbp/spribp - even/odd bit29ind)

MIPS AVE =  9.059, TIME AVE = 117, 110 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 11: (eppbp/spribp - odd/even bit29ind)

MIPS AVE =  8.882, TIME AVE = 117, 112 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 12: (random mix)

MIPS AVE = 11.445, TIME AVE = 94, 87 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 13: (lda 0,du...)

MIPS AVE = 19.447, TIME AVE = 55, 51 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 14: (nop 0,du...)

MIPS AVE = 18.393, TIME AVE = 59, 54 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *


TEST 15: (lprpbp/sprpbp - even/odd bit29)

MIPS AVE = 11.331, TIME AVE = 94, 88 NANOSECONDS

* * * * * * * * * * * * * * * * * * * * * *

COMPOSITE GEOMETRIC MEAN MIPS = 11.673

}}}"	enhancement	closed	minor	MR12.9	Tools	MR12.8	fixed		
