Text preview for : 5000854_B6700_Timings_Feb75.pdf part of burroughs 5000854 B6700 Timings Feb75 burroughs B6500_6700 5000854_B6700_Timings_Feb75.pdf



Back to : 5000854_B6700_Timings_Feb | Home

(RELA TIVE TO MARK 11.6 RELEASE)




$4.00




Printed in U.S. America 2-75 5000854
COPYRIGHT @ 1975 BURROUGHS CORPORATION




Burroughs believes that the information described in this
manual is accurate and reliable, and much care has been
taken in its preparation. However, no responsibility, financial
or otherwise, is accepted for any consequencesarising out of
the use of this material. The information contained herein is
subject to change. Revisions may be issued to advise of such
changes and/or additions.




A 5000854
Burroughs -B 6700 System Timings




Section 1


Construct timings do not, by themselves, convey a great deal of knowledge
about performance. They represent only one set of characteristics out of many
that must be considered. Nevertheless, they can be very useful.
They are more informative, for example, than the more primitive indicators
such as clock rate or memory speed. and they are reasonably unambiguous. The
"add time" of a computer may mean different things to different people. How-
ever, "A=B+-C" denotes an amount of work done, whether on a particular machine
which involves a polish string or a three-address fixed-lengt,h instruction.
Construct timings should be useful to the programmer who wants to understand
how to write more efficient code. Knowing the relative speeds involved when
choices present themselves is of obvious benefit.

The data in this document are actual measured timings. They were obtained by
means of programs especially designed for this purpose, taking into account
the following:
Timing Method
FORTRAN:
The TIME (11) function was used to read the time of day register.
Since this function in FORTRANcalls an MCP intrinsic, one must
consider the time involved to do this (about 80 us on a B 6700 5.0/
10.0 processor, 1.2 us memory). The construct was repeated N3 times
in line within a DO loop of N2 iterations with timer readings before
and after the DO loop. The same loop was also timed "empty", i.e.,
with no constructs within it. This loop timing also includes the
overhead for reading the timer. The difference in times (i.e., the
time fot the loop with constructs minus the time for the "empty"
I

loop) divided by N3*N2 represents the time for the construct. N3 is
chosen so that the time for N3 constructs is much larger than the



1-1




1.
Burroughs -B 6700 System Timings
Construct Timings



FORTRAN(Continued)
empty loop time. N2 is chosen to make the total DO loop time large in re-
lation to the time to read the timer. This maximizes the accuracy of thetimings.




The timing in ALGOL was done in much the same way as in FORTRAN. The con-
struct was repeated N3 times in line between two TIME (11) statements.
The relatively small (about 6.4 ~s on a B 6700 5.0/10.0 processor) time
required to actually read and store the time of day register was later
subtracted out. N3 was 100 in all cases. N2 does not apply.

COBOL:
The method is essentially the same as described for FORTRAN, using
PERFORM TIMES of N3 construc~s.
N2 N2 and N3 were usually 100 and
50, respectively.
Perturbations
Should an interrupt occur at any time between timer readings, the
timing will, of course, be distorted. Therefore, each timing loop
was repeated to obtain a number, (Nl), of observations. The few
times which did not agree with the majority of observations were
caused by such perturbations from interrupts and were discarded.
Nl was usually 100 in the FORTRANand ALGOL timings and 25 in the
COBOLtimings.

3. Code Alignment
any construct, the generated code may occupy anyone of six
positions relative to word boundaries --i.e., the string may start
in syllable 0, 1, 2, etc. Some variations in timing will result
from this, but they are of little consequence. For uniformity, all
timings were done with code beginning in syllable zero.

Operands
Many of the constructs timed have a dependency on the actual values
of the operands involved. For this reason, a variety of operands
were used in the FORTRANtimings for these constructs to measure the
extent of that dependency. For those cases, a "range" of times ob-
served is quoted. This range is over those operands used and mayor
may not include the possible minimum and maximum.




2.
4.
1.
1-2
ALGOL:
For
Burroughs -B 6700 System Timings
Construct Timings



Repeatability
All of the programs were run more than once -on different days,
different processors, some on different systems -to establish the
repeatability of the results.

What is sometimes seen is that there are two repeatable timings.
This occurs because the timing is affected slightly by whether the
code and operands are in the same memory module. The amount of the
difference varies according to the construct involved, but is rela-
tively minor (usually 10% or less).
But there are, in effect, two correct answers for each construct.
Because of this, where different language constructs generate the
same code, the timing reported may be the same or may vary slightly.


One 5.0/10.0 processor was used with 1.2 ~s memory (B6004-1) in one
case and 1.6 us memory (B6005-1) in the other case.

Software
The software release level is noted for each set of timings. For
some constructs, the timing could conceivably change from one release
to the next, if different code is generated.
A sample FORTRANtiming program follows.




1-3




6.
7.
5.
Hardware
Burroughs -B 6700 System Timings
Construct Timings


DIMENSION OBSV(1000)N1
= 100
N2 = 14
N3 = 100
DO 30 I = 1, N1
TBEG = TIME(ll)
DO 10 J = 1, N2
Z=X+Y
c
c THE CONSTRUCT ABOVE IS REPEATEDSO THAT IS APPEARS
c WITHIN THIS DO-LOOP A TOTAL OF N3 (N3 = 100) TIMES
c
c EACH SET OF OPERAND VALUES THE CONSTRUCT
c IS EXECUTED
Nl*N2*N3 TIMES.
C
110 CONTINUE
TEND = TIME(ll)
OBSV(I) = TEND -TBEG
TBEG = TIME(ll)
DO 20 J = 1, N2
20 CONTINUE
TEND = TIME(ll)
OBSV(I) = 2.4 * (OBSV(I) -TEND + TBEG) / (N2*N3)
30 CONTINUE
C
C SORT AND OUTPUT THE OBSERVATIONS (OBSV ARRAY)
C
STOP
END




1-4



FOR
Burroughs -B 6700 System Timings




The following timings of certain ALGOL constructs were obtained using theMCP
and ALGOL compiler from the Mark 11.6 systems software release. The
timings of each construct for each memory speed (1.2 us and 1.6 us) are
displayed on the following pages. An asterisk appearing between the two
columns of timings refers to a note on the last page of this section.

The variable names used and their data type definitions are:
REAL
INTEGER I,J,K;
DOUBLE XDBL,YDBL,ZDBL;ARAYl[O:9],
ARRAY BRAYl[O:9],ARAY2[O:9,O:9],
BRAY2[O:9,O:9:,
ARAY3[O:9,O:9,O:9], BRAY3[O:9,O:9,O:9];
A range in timing for some of the constructs is due to the different operand
values used in the execution of the construct. The pairs of operand valuesare:


(XREAL,YREAL) = (1@0,1@0) and (6517, -1740)
(XINTGR,YINTGR) = (1,1) and (6517, -1740)
(XDBL,YDBL) = (1@@0, 1@@0) and (4632@@31, 8623@@27)
(ARAY...,BRAY...) = (1@0,1@0) and (4631527@28, 8623355@24)
I, J and K = 1

The constructs containing ABS and DABS had an operand value of -12345.




2-1
XREAL,YREAL,ZREAL;XINTGR,YINTGR,ZINTGR,
Burroughs -B 6700 System Timings

ALGOL Construct Timings


Proc Speed: 5.00/10.00
MCP : Mark 11.6
ALGOL: Mark 11.6

SINGLE PRECISION REAL CONSTRUCTS

Timings in
Micros~conds
ALGOL
Construct 1.2 us Memory ! .6 11.8 Memory

ZREAL := XREAL + YREAL; 5. 6 - 7.0 -11.7
ZREAL := XREAL -YREAL' , 6. 0 7. 2 10.7 -11.9
ZREAL := XREAL * YREAL; 7.0 8.13.
11. 4 11.7 -13.1
ZREAL := XREAL / YREAL; 8 0 16.5 -17.7
ZREAL : = XREAL DIV YREAL; 6. 6
ZREAL := 1; 2. 8 4. 5
ZREAL := 1.0; 5. 4 8. 0
ZREAL := 1@0; 5. 4 8. 0
ZREAL := 97; 3.2 5. 1
ZREAL := 9701; 3. 6 5.6
ZREAL := 99999; 4. 6 7. 6
ZREAL := 100000; 5. 4 8.0
ZREAL := 100001; 4. 6 7. 6
ZREAL := 12345678; 4. 6 7.6
ZREAL := XREAL; 3. 8 6.8
ZREAL : = XREAL + XREAL; 5. 0 8.11.14.18.
2
ZREAL : = XREAL + XREAL + XREAL: 6. ,6,8,0 6.9
ZREAL : = XREAL + XREAL + XREAL + XREAL; 8.10.
ZREAL : = XREAL + XREAL + XREAL .3


+ XREAL + XREAL;
YREAL : = YREAL + XREAL + XREAL
+ XREAL + XREAL + XREAL;
XREAL : = XREAL + XREAL + XREAL
+ XREAL + XREAL + XREAL;
ZREAL : = XREAL + XREAL + XREAL + XREAL 13.4 24.9
+ XREAL + XREAL + XREAL;
ZREAL : = XREAL + XREAL + XREAL + XREAL
+ XREAL + XREAL + XREAL + XREAL;
ZREAL := ABS(XREAL); 5.5 8.8
ZREAL := COSH (XREAL); 221.7 * 337.9
ZREAL := EXP (XREAL); 166.1 * 253.9


2-2




15.2
11.8
21.6
10.8
10.3
Burroughs -B 6700 System Timings

Construct Timings


SpeedMCPALGOL
Mark 11.6Mark
11.6

SINGLE PRECISION REAL CONSTRUCTS (Cant)
Timings in
Microseconds
ALGOL
Construct 1.2 us Memory 1.6 us Memory
ZREAL := SIN (XREAL); 145.1 * 221.5
ZREAL := SQRT (XREAL); 171.5 * 252.3
ZREAL ;= XREAL + SQRT (XREAL); 174.4 * 257.8
ZREAL := SQRT (ZREAL);YREAL 171.5 * 252.3
:= YREAL + SQRT (YREAL); 169.6 * 252.3

INTEGER CONSTRUCTS
Timings in
Microsecongs
ALGOL
Construct 1.2 us Memory 1.6 us Memorv
ZINTGR := XINTGR + YINTGR;ZINTGR 6.1 -6.5 10.9 -11.3
:= XINTGR -YINTGR; 6.1 -6.5 10.9 -11.3
ZINTGR := XINTGR * YINTGR;ZINTGR 7.5 -7.9 12.3 -12.7
:= XINTGR / YINTGR;ZINTGR 14.9 -.15.5 19.7 -20.3
:= 1; 2.8 4.5
ZINTGR := 97; 3.2 5.1
ZINTGR := XINTGR;ZINTGR 4.5 7.8
:= ZINTGR; 3.0 4.8




r




5.00/10.00
2-3
Proc
ALGOL
Burroughs -B 6700 System Timings

ALGOL Construct Timings


Proc Speed: 5.00/10.00
MCP :ALGOL: 11.6
Mark
Mark 11.6

DOUBLE PRECISION REAL CONSTRUCTS
Timings in
,Microseconda
ALGOL
1.2 Us Memory '1.6 I.Ls Memory
.f;:.onstruct
10.0 -11.6 17.6 -19.2
ZDBL := XDBL + YDBL;
10.0 -11.6 17.6 -19.2
ZDBL := XDBL -YDBL;
ZDBL := XDBL * YDBL; 16.6 24.2
38.6 -51.0 48.2 -60.6
ZDBL := XDBL / YDBL;
ZDBL := l@@O; 6.6 10.6
ZDBL := 8@@O; 6.6 10.6
ZDBL := XDBL; 6.4 11.4
ZDBL := DABS (XDBL); 8.2 13.4
ZDBL := DEXP (XDBL); 571.7 * 836.3
ZDBL := DSIN (XDBL); 382.9 * 576.7
ZDBL := DSQRT (XDBL); 237.3 * 344.5




2-4
Burroughs -B 6700 System Timings

ALGOL Construct Timings


Proc Speed: 5.00/10.00
MCP :ALGOL: 11.6
Mark
Mark 11.6

ARRA Y CONSTRUCTS
Timings in
Microseconds
ALGOL
Construct 1.2 us Memorv 1.6 Us Memory

ARAYI \1: := XREAL; 5.6 9.9
ARAYI 11] := BRAYI I ; 7.6 13.0
ARAYI 'I] := XREAL; 6.7 12.3
ARAYI [I] := BRAYI I..;
I] 9.5 17.6
ZREAL := ARAYI [I] + BRAYI [I]; 11.2 -12.6 20.6 -22.0
ZREAL := ARAYI [I] -BRAYI [I]; 11.6 -12.8 21.0 -22.2
ZREAL := ARAYI [I] * BRAYI [I]; 14.0 23.4
ZREAL := ZRZYI [I] / BRAYI [I]; 17.4 26.8
ARAY2 [1,1] := XREAL; 8.7 14.3
ARAY2 [1,1] := BRAY2 [1,1:, 14.7 24.6
ARAY2 [1,J] := XREAL; 10.5 18.7
ARAY2 [1,J] := BRAY2 [1,J]; 18.4 33.4
ZREAL := ARAY2 [1,J] + BRAY2 [1,J]; 18.9 -20.3 35.3 -36.7
ARAY3 [1,1,1] := XREAL; 11.9 18.9
ARAY3 11,1,1] := BRAY3 I :. 23.7 38.4
ARAY3 I I,J,K] := XREAL; 14.4 25.3
ARAY3 I I,J,K] := BRAY3 [1,J,K]; 29.6 52.1
ZREAL = ARAY3 I I,J,K] + BRAY3 r 33.5 -35.1 59.2 -60.6




r
2-5




LI,J,K];
:1]
~l,l,l
[
Burroughs -B 6700 System Timings
ALGOL Construct Timings



NOTE
These constructs call upon intrinsic routines of which each must be
linked from the Dl stack prior to its first execution within a pro-gram.
The first timing which includes intrinsic linkage will vary
between 2 and 160 milliseconds, d.epending upon the presence or
absence of certain MCP segments in main memory. The above timings
were observed after the corresponding intrinsic was called once and
linkage was thus established.




2-6
Burroughs -B 6700 System Timings




The Mark 11.6 MCP and COBOLcompiler were used in obtaining the following
construct timings. Both 1.2 us and 1.6 ~s memories were used, and the resul-
tant timings for both memory speeds are listed beside each construct on the
following pages.
The constructs have been grouped into twenty different "types" represent ing
common data names and thus common data representations (pictures).
Two timings are given for each construct within each memory speed in the
first ten construct types. The first timing corresponds with the operandvalues:
I"
"X " = +1 and "Y " = +1.

The second timing resulted from using the operand values:
." = +6517 and "Y-.. ." = -1740.

The data names and their corresponding pictures and usages for the constructs
timed are listed by type in the following WORKING-STORAGESECTION.




3-1



c
"X-..
1



Burroughs -B 6700 System Timings

COBOL Construct Timings


DATA DIVISION.
WORKING-STORAGE SECTION.

TYPES 1 AND 11

77 PIC 89(7)
77 PIC 89(7)
77 Z-S7-CMPI PIC 89(7)

TYPE 2

77 PIC S9(5)V99
77 PIC S9(5)V99
77 PIC S9(5)V99

TYPE 3

77 PIC J9(7).
77 Y-J7 PIC J9(7).
77 Z-J7 PIC J9(7).

TYPE 4

77 X-J5V2 PIC J9(5)V99.
77 Y-J5V2 PIC J9(5)V99.
77 Z-J5V2 PIC J9(5)V99.

TYPE 15 (PART 1)

77 PIC 89(5) COMP-l
77 Y-J5 PIC J9(5).

TYPE 16 (PART 1)

77 X-SIO-CMPI PIC 89(10) caMP-I,
77 Y-J8 PIC J9(8).

TYPE 17

77 PIC 999
77 PIC 9(6)
77 Z-6-CMP2 PIC 9(6)
77 W-J6-CMP2 PIC J9(6)

TYPE 18

77 PIC 999

TYPE 19 (PART 1)

77 99INDEX.
77 INXI
77 X-XS PIC X(5).




3-2




X-J7
NUM-3-CMPI
caMP-I.
COMP-I.
X-S5V2-CMPIY-S5V2-CMPIZ-S5V2-CMPI
X-S7-CMPIY-S7-CMPI
CaMP-I.CaMP-I.CaMP-I.
CaMP-I.CaMP-I.COMP-2.COMP-2.
SUB-2-CMPI
X-3-CMPIY-6-CMPI
X-S5-CMPl
PIC
Burroughs -B 6700 System Timings

COBOL Construct Timings




TYPE 5


03 X-S7-CMP PIC 89(7) COMPo
03 Y-S7-CMP PIC 89(7) COMPo
03 Z-S7-CMP PIC 89(7) COMPo

TYPE 6


03 X-SSV2-CMP S9(5)V99 COMPo
03 Y-SSV2-CMP PIC S9(5)V99PIC COMPoCOMPo
03 Z-SSV2-CMP S9(5)V99

TYPE 7


03 X-03-J7 PIC J9(7).
03 Y-03-J7 PIC J9(7).
03 Z-03-J7 PIC J9(7).
TYPE 8


03 X-03-J5V2 PIC J9(5)V99.
03 Y-03-J5V2 PIC J9(5)V99.
03 Z-03-J5V2 PIC J9(5)V99.

TYPE 9


03 X-S7-CMP2 PIC S9(7)
03 Y-S7-CMP2 PIC S9(7)
03 Z-S7-CMP2 PIC S9(7)

TYPE 10


03 X-J7-CMP2 PIC J9(7)
03 Y-J7-CMP2 PIC J9(7)
03 Z-J7-CMP2 PIC J9(7)

TYPE 12


03 Xl X.PIC
03 X6 X(6).PIC
03 X25 X(25).
03 Xl32 PIC X(132).



~
(


3-3




WS-OP-6.
WS-OP-5.
WS-OP-4.
PIC
WS-OP-7.
COMP-2.COMP-2.COMP-2.
01
WS-OP-l.
WS-OP-3.
WS-OP-2.
PIC
-B 6700 System Timings

COBOL Construct Timings




TYPE 13


03 X-7-CMP 9(7)PIC COMPo
03 Y-5V2-CMP 9(5)V99PIC COMPo
03 Z-Z7 Z(7).PIC
03 W-Z5P2 Z(5).99.

TYPE 14


03 X-S7-COMP PIC 89(7) COMPoCOMPoCOMPo
03 Y-S7-COMP PIC 89(7)
03 Z-S7-COMP PIC 89(7)
03 A-J7 PIC J9(7).
03 B-J7 PIC J9(7).
03 C-J7 PIC J9(7).
TYPE 15 (PART 2)


03 S-S5-CMP PIC 89(5)
03 1'-S5 PIC 89(5).
03 U-J5 PIC J9(5).
03 Y-S5-CMP2 PIC 89(5)
03 W-J5-CMP2 PIC J9(5)
TYPE 16 (PART 2)


03 U-S6-CMP PIC 89(6) COMPo
03 V-J4 PIC J9(4).
03 W-J9-CMP2 PIC J9(9)
03 A-X8 PIC X(8).
03 B-X4 PIC X(4).
88 B88 VALUE "YES"
WS-OP-12 DISPLAY-I.
03 C-X4-DISPI PIC X(4) DISPLAY-I.
19 (PART 2)


03 SUB-X5-0C-IOWS-OP-14. PIC X(5) OCCURS10 TIMES.
03 IDX-X5-0C-IO PIC X(5) OCCURS10 TIMES
INDEXED BY INX2.
TYPE 20


03 XX-X25 X 25 TIMES.




3-4




WS-OP-S.
WS-OP-15.
PIC
WS-OP-II.
COMP-2.
COMP-2.COMP-2.
OCCURS
WS-OP-13.
WS-OP-IO.
01
TYPE
COMPo
WS-OP-9.
PIC
Burroughs
Burroughs -B 6700 System Timings

COBOL Construct Timings


Proc Speed:MCP5.00/10.00
: Mark 11.6
COBOL: Mark 11.6

TYPE 1 CONSTRUCTS
Timings in
Microseconds
COBOL
Construct 1~2 us Memory 1.6 us Memorv
ADD X-S7-CMPl, Y-S7-CMPI GIVING Z-S7-CMPI. 5.6 -6.0 10.3 -10.7
COMPUTE Z-S7-CMPI = X-S7-CMPI + Y-S7-CMPI. 8.0 -8.4 14.7 -15.1
SUBTRACT Y-S7-CMPI FROMX-S7-CMPI GIVING
Z-S7-CMPI. 6.3 - 6.7 -11.614.7
COMPUTE Z-S7-CMPI = X-S7-CMPI -Y-S7-CMPI. 8.0 - 8.4 -15.1
MULTIPLY X-S7-CMPI BY Y-S7-CMPI GIVING
Z-S7-CMPI. -10.910.0 -17.916.9
COMPUTE Z-S7-CMPI = X-S7-CMPI * Y-S7-CMPI. -10.4 -17.3
DIVIDE X-S7-CMPI BY Y-S7-CMPI GIVING
Z-S7-CMPI. -17.917.0 24.5 -24.9
COMPUTE Z-S7-CMPI = X-S7-CMPI / Y-S7-CMPI. -17.4 23.9 -24.3

TYPE 2 CONSTRUCTS
Timings in
Microseconds
COBOL
Construct 1.2 us Memory 1.6 us Memory

ADD X-S5V2-CMPl, Y-S5V2-CMPI GIVING
Z-S5V2-CMPI. 5.6 - 6.0 10.3 -10.7
COMPUTE Z-S5V2-CMPI = X-S5V2-CMPI +
Y-S5V2-CMPI. 8.0 - 14.7 -15.1
SUBTRACT Y-S5V2-CMPI FROM X-S5V2-CMPI
GIVING Z-S5V2-CMPI. 6.3 - 6.7 -11.6
COMPUTE Z-S5V2-CMPI = X-S5V2-CMPI -
Y-S5V2-CMPI. 8.0 - 8.4 14.7 -15.1
MULTIPLY X-S5V2-CMPI BY Y-S5V2-CMPI GIVING
Z-S5V2-CMPI. 20.6 -21.0 28.0 -28.4
COMPUTE Z-S5V2-CMPI = X-S5V2-CMPI *
Y-S5V2-CMPI. -20.5 27.2 -27.6
DIVIDE X-S5V2-CMPI BY Y-S5V2-CMPI GIVING
Z-S5V2-CMPI. -21.5 28.7 -29.1
COMPUTE Z-S5V2-CMPI = X-S5V2-CMPI /
Y-S5V2-CMPI. 20.8 -21.2 28.2 -28.6

(

3-5




8.4
21.1
10.5
17.5
11.2
20.1
-B 6700 System Timings

COBOL Construct Timings


Proc Speed:MCP 5.00/10.00
:COBOL: 11.6Mark
Mark
11.6

TYPE 3 CONSTRUCTS
Timings in
Micros