journal for the users of the burroughs 6700 number:...
TRANSCRIPT
.
Journal for the Users of the Burroughs 6700
Number: 4, 1974 November
Contents:
From the editor page
Technical Contributions
A.D. Causer, Interfacing non standard
peripherals to a B6700 through a
DEC PDP 11 minicomputer
J. Levin, A presentation of Parallel
Processing
J. Pikner, Allocation of B6700 costs
to users at the Federal Reserve Bank
of New York 39
Mailing list 48
Jl'M700, number 4,1974 November
Editor
Harry P.J.:!. Roume:t
Eindhoven University of Technology
Conpu~ing Centre
P. O.10X 513
Eindhoven, ~etherlands
Secretary
Miss Tiny Fransen
Eindhoven University of Technology
Compu ':ing Centre
P.O. Box 513
Eindhoven, Netherlands
JUE.6700 is an informal irregulary appearing pUblication for the users
of the Burroughs 6700, for the time being edited at the Computing Centre
of Eindhoven University of Technology.
The contents of JUB6700 will mainly consist of technical papers; contri
butions cO JUB6700 may be sent to the editor. Where possible the papers
should bl:! typed and camera-ready.
Hithout eharge two copies are sent to the "manager" of each B6700-
installation and also to some Burroughs-representatives.
~~tters pertaining the mailing list should be sent to the secretary.
JUB
From the editor.
This fourth number of JUB6700 is later than I scheduled, because
I ",'anted to wait till after the meetings of CUBE and ABCU.
In those meetings is spoken about JUB~ also with r~ference to the
letter that I seni you with the text of a resolution; I have got
the in1prE~ssion that the 6700-usergr<:>ups in general are happy with
JUB.
At the~ same time Burroughs has shown interest and has given strong
indications that the corporation will support the journal; on this
mortent: JUB is a subject of discussiol1 between Burroughs, some users
and me.
During the last CUBE-meeting it appeared that Joe Rosinski was wil
ling to act as JUB-contactperson, representing the 6700-subgroup of
CUBE, and that Douglas Johnson will take care of periodic publications
in JUB about the CUBE-library.
I hope that in BeUA there can also be found a co-editor.
The aedress of J.F. Rosinski is
Michigan Bell (room W-162)
23500. Northwestern Highway
Southfield (Michigan) 48075
U.S.A.
It is my impression and also the impression of a number-of users that
the discussion in the 6700-subgroups could be improved, if presentations,
from users as well as from Burroughs-representatives, are pre-published
in JUB.
Interfac.ingnon stamiar:dp:eripherals ;1:;:0 aB67.DO thr,ough a
DEC PDP 1 1 mi.nicompu'te.r
by A. D • Causer
(Uni versityn£ Ganterb:u1;'y.,{;ompu:terOentr:e, N ewZealarui).
JUB 4-2
This article des crihe s the ha'l'dwaresI'ltis:or'tware usecl toat,tach
various remote and central site 'Fedph:era~'S ,and interactive terminals
tothE~B6700 syst.em,a.t th:elim'll'er:sl::tyo:f ,Can,tetbury.. PDrll minicomputers
have provided conV'enient,poW'erfu~le:ndch:eap interfaces both hardware
and soft.vare 'to a varie'ty 'Of 'l'eri:ptrerail'S.
I. Hardware
Currently we have one PDP 11 /lOc;('uttrolliQ;& sprinter I card reader
as aremoteJdbEntrys;.tation.,wi"tha's;:econdsachsys.t:em due ,to
be instal1edshort.~y, amonePIIPl\ f20control1in:ginteractive
terminals,drump"l.otter" 'papel"tape:read:er /punch and card reader.
Both E!!:xistingPDPFJ 's havesuff,icient memo.ry and CPU power to
allow installation of further 'peripherals and/or terminals as
required.
Specifications:
RJE s ys t.em :
PDPll /rOwith8K W'ordsmemol'Y
Telety.pe
Hewlett Packard RP7261A JoO c:pmoornreaaer /mark sense card
reader
S TATOS 31 1000 ·lpmel:e:ctro,staticpx.!n:ter /1'10 t.ter
PDP 11 /20 system:
I PDP Ll/20with i2K 'word.s .mem.ol:Y
3 DECWRITER 30 c1'mhard. copy terminals
6 DEC VT05 'scre:ente.rminals
1 CDC71) .screenterunal
Calcomp 56511 "drump1.otter
DEC CRI1 30.0c:pmcardre:ader
FACIT 1 OOOcpspa:pert~pe 'read.e:r
FACTT 70 .cpspap.ertapepunch
JUB 4-3
Each PDP]l is attached to the B6700 via a 9600 baud data
communication line and a line adapter. Terminals at distances
up to a mile have 2 locally developed line drivers on the lines
connecting them to the PDPll, and thOse over a mile away use modems.
The RJE system, being about a mile from the central: site, also
requires two line drivers.
2. Software , '
Standard B6700 RJE is used for the RJE system, and CANDE for the
interactive terminals. A specially written MCS called PDPMCS
han,dles paper tape I/O and plotter messages. This same MCS '!.-rill
also he E:nlarged to handle mark sense card input from the RJE
station; the card reader there appears to be two separate devices
as far as the B6700 is concerned. All information is transmitted
between PDF11 f sand B6700 as messages; normal1y being single lines
for the terminals, or 80 x 8 bit character blocks for pa.per tape
and plotter. The PDP} I systems each contain an idle loop program,
a backgr()Und program, and various interrupt driven device handling
routines., In the PDPll/20 the background drives the Calcomp plotter.
In the ~rE system it drives the STATOS 31 printer. Addition of
a new type of paripheral to the system requires:
(a)
(b)
(c)
an addition to the NDL network description
an addition to PDPMCS if the peripheral loS not to be supported
by CANDE or RJE
addition of a device handling subroutine and device data area
tel the PDP11 system; the subroutine may comprise 6 instructions
only if it is for another terminal of an existing type.
2. J. Functions carried out by the PDP! 1 systems
For interactive terminals, character input is accepted until a
complete line is ready. At any stage during input this line may
be edited without recourse to the B6700 (appendix I). When ready
it is transmitted to the B6700. Output from the B6700 is received
line at a time and will be sent to the terminal.
JUB 4-4
OnE~ DEGWRITf;R on the 11/20 functicms as a. CA:NDE tog s.tation
and also a:1.10ws theoperat(lt' tn contt:o! th~p.lo.tter ,., paper
tape I/O and. card reader.
Pape'r tape is read in aDS btt cna't'!ac:teT:ElacJ~s: and sent to
the B:6700. Reading is initiated after the ap:era.tar types a user
code and filename und'6't' which the inputfsta tJe stored on disk
in the B6700. Multi-tape files 411tea.Uawe.d .• Optiona:llyto blank
tape callmms 'w.ay be i.gno11ted. ":Paper- .trape mrt:put" is also handled
in 80 cha.r.acterblocks. For the -gllitter"inr..o:rlllation comprising
the checked param:e:terst.o the p:rot:.ting·subrou.tines (appendix 2)
called by the user are passed to the PDP!] i1.'); 80 character blocks.
The PDP I 1 performs dl the c'ompu,t:;:a;..tticm. ne:ceSisary to -expand thes e
param~!ter values to act:t+.al.p;J:a:tt::m:: c:on.t:):':Ql digihS;. Opt;ionally
the pl.ottermeSiSa~es may he ot:r,t:p:'la:4!:d:~ct,;ty to pap.er tape, from
which they may later be plotted. wh,:iCle-the. PD1:l1 r is' on or off line
to the B6700. The C-onlput:ex:. c.eutte· IBM 360./44 can punch the same
plotting messages on. punched car:ds~ ftmn which they-maybe x:ead
by the PDPll. On either sys.tent any actual device may be allocated
by the operator to anyone of aeve:ral virtual devices, for instance
the HP card reader may appear to the. B:ti700as anAS:CII reading RJE
card reader,. or as a 16:0 x 6 bit cha.ract:e't'mark sense device .•
HerIlory used .is approximately4K wox:ds in the RJE sys tem and
9K in the PDP 1 1/20.
2. 2. Remo tE~ hl.quiry statian
Lines typed· on any1ll.t:"ti'!.aI:.rivef!:ezm:&na'1:~ybe directed to
PDP'MCS instead of CANl1E if the. user pt:ef.ixes the line wi th a
special control ciuu!a:ctte'r .nn.t;:~ly U$5 by CANDE .. All such
messages appear. to come· frnma. sd~ng:la· l"ps:-elldo,II terminal as far
as the DCP is concernat,. V.athL~t comprises commands tb
PDPMCS Wli:th catI~.e· ittog~thtt systems:tatus:infomation and
return this to the "pseudo" terminal. The PDPII then directs
the ou tpu t to the actual termimrl f:rOlU which the command
originated.
2.3. Functions of PDPMCS
Initially all user paper tape or plotter output is to disk.
Such files have their names entered in a directory used by
F'DPHCS and are subsequently found and sent to the PDPlI by
PDPHCS. Each paper tape input file is stored on disk for
subsequent use by a user program.
3. Advantages 0+ the system
One of the fundamental advantages is the ease with which a new
peripheral can be interfaced with hardware and software to the
PDPI!. quite independently of B6700 operations and software.
JUB 4-5
This has allowed us to choose the peripherals or terminals that
most suited our needs, and to take easy advantage of price
competition between different manufacturers. A substantial
ame-unt of computation is handled by the PDP!! systems, giving
for e~(ample instant responses to single character input on a
terminal. Also plotting, ',hich uses much elapsed time, can be
handled as an off-line activity if necessary, and thus can
continue at times when the B6700 is not available. This IT.ode of
operation proved to be essential while the B6700 had only SOK
words of memory, and thus could not easily support data communica
tions software in the mix for long periods of time.
,-lith mass storage devices attached to the PDP11 systems they
could provide useful independent systems for such purposes as
running smaller interactive tasks, file preparation and editing
etc.
APPENDIX 1
VTOS OPERATION
JUB 4-6
The V~OS is used to send messages to the B6700 CANDE system or to
thE! PDPll log. The latter facility is provided so t;hat in the
eVE!nt of the B6700 going down terminal users can still communicate
with the machine room from a remote terminal. A message is defined
as from 1 to 72 characters (one line on the VTOS screen). All upper
and lower case characters are accepted and stored in the input
buffer, ivhich is 72 characters long. Input always takes place at
the current cursor position. The following special functions are
implemented. All other control characters and RUB-OUT are ignored.
The. LOCK key must be pressed to enable EOL and EOS to work.
Character
LF
CNTRL S
CNTRL Q
CNTRL R
EOl
Visible Action on Screen
Cursor return and line feed
The address character of
the VTOS is echoed.
None
None
The current line is erased
and the cursor returned to
the left end of the line.
Action on Input
Send message in buffer to
B6700 (or log).
As the first character of a
message, directs the message
to the log. The address
character of the VTQS ~s
s tared as inpu t.
Pause the output from. the B6700.
Re-start output from the B6700.
The current line of input is
re-initialised, but note that
the actual buffer contents
remain unchanged. i.e. they
can be duplicated onto a new line.
Cha.racter
CR
EOS
JUB 4-7
I Visible Action on Screen Action on Input
The cursor moves up one line None
The cursor is moved down a No action. Note + followed
line.
The cursor is returned to
the left end of the input
line.
The cursor moves to the
top left corner of the
screen and the screen
contents are erased.
Echo contents of input
buffer at cursor position
Move the cursor left
one space
by EOLenables the user to see
the line he has just re
initialised.
None
Any message in the process of being
input re-initialised.
None, unless the cursor is
moved beyond the end of the
characters so far input for
this line, lvhen the character
count for the message is
incremented. The current
buffer contents remain un
changed. Thus -+ can be used
to duplicate the previous line
of input, provided the user
has done nothing to disturb
the buffer contents since the
.previous line was stored.
None
Character
CNTRL D
TAB
ALT
HOME
Note
Visible Action on Screen
The resulting new line
is echoed. The cursor posi
tion is unchanged.
The cursor is moved to
the next TAB position and
blanks are echoed for the
spaces moved over.
As for TAB but echo
JUB 4-8
Action on Input
A space is inserted in the
line at the current cursor
position. If the line is
already full the last
character on the line is lost.
Blanks are placed in the input
buffer up to the next TAB
position. TAB positions are
at positions 1, 9, 17,25,
33,41, 49,57 and 65 to 72
inclusive.
Move cursor to next TAB
contents of input buffer. position. No effect on input
Thus may be used to duplica- buffer unless cursor position
te characters up to the moves beyond current input
next TAB position. count, then see notes for +
The cursor is moved to
the left of the top line
of the screen.
None
When a line is re-initialised, the input character count is returned
to zero; the characters currently in the buffer are unchanged but
may only be used for duplicating into a new message, and not for
transmission as a message themselves.
Note 2
Local editing of CANDE files using screen terminals:
If CNTRL T is typed, the second to last line sent by CANDE to the
terminal is reproduced in the input buffer, with the first blank
removed. This line can then be edited as input and sent back to the B6700.
To edit line 200 of a workfile, for example, type
L200
JUB 4-9
CAKDE thEm lis ts Line 200, following this with a # on the next
line. CNTRL T will then list line 200, deleting the first blank
and leaving the cursor in the leftmost position. When CANDE lists,
it inserts a ~pace immediately after the sequence number; CNTRL T
remOVE~S this space so the line lis ted by CNTRL T agrees with the
workfile contents.
Note 3
Use of a terminal as a remote enquiry station. Messages commencing
with CNTRL F are directed to a remote enquiry program in the 86700.
The format of such messages is CNTRL F code/usercode.
I.JhE:re code is as given below:
C the system responds with a list of completed tasks
for the usercode.
A a list of the active tasks for the usercode
J a list of the job structure for each job under the
usercode
S a list of scheduled tasks for the usercode
iJ a list of waiting tasks for the usercode
CU Core usage for active tasks under the usercode
T! Process time for active tasks under the usercode
SQn A list of jobs in queue n for the usercode
JUB 4-10
APPENDIX 2
PLOTA PLOTTING SUBROUTINES FOR THE B6700
1. General notes
The:se subroutines (referred to under the collective title PLaTA),
when called provide output which may be used by the PDP)l system
to produce graphical output an theX';';'Y 1'1et'ter. They may be
called from a FORTRAN or ALGOL program in the usual way, and the
usual FORTRAN convention determines the typ'e of the arguments.
No single plot may exceed 204.74" in length (X) or 10.90" in
heigh t: (Y).
2. Sequence of call statements
AINIT must be the first ca1l fdr a plot, and AEND the last. Both
are essential. Any other calls arte optional. ATJtynumber may be
present, and in any order. Any number of plot:s may be produced
from a single task.
3. Definition of origin
The origin is initially defined as the bottom left hand corner
of the plot, referred to as the paper origin. It may be redefined
anywhere by calling AORIG. All subroutines excep.t AORIG will use
the origin most recently defined. The arguments of AORIG itself
will always be measured from the origillal paper origin.
4. Restrictions on arguments
The user may deduce the restriction's on argument values from the
description of the individual r'outines. Uriless otherwise stated,
however, integer arguments must lie in the range -20479 to 20479.
5. Output
Output for each plot is 'a disk file with title of the :form
PLOTATOPDPIlFILE/Tdddddttttttttttt
wht;~re ddddd is the Julian date and ttttttttttt the time in units of
2.4 microseconds of the call to AIN'IT.
JUB 4-1)
Hence each plot will be to a um.que file, and its title will
be printed on FILE6. Such files will automatically be plotted
onee. Th,:y may be saved on tape after the job by including
thE~ statement
COpy PLOTATOPDPIIFILE/= TO tapename
6. Operator instructions
ThE~se may be included by using one or more calls to ATYPE.
Th€~ PDP1! will wait after typing the message, and will continue
after th,~ operator has typed RETURN on the PDP11 teletypewriter.
The PDPII will not wait after a call to ATYPEG.
7. VolumE~ of output
This TIlay be calculated from the following formulae, each giving
the. number of 8 bit characters output to the PDPI1 as the
result of a call.
AINIT 80
AEND
AORIG No punched output
ATYPE, ATYPEG + number of characters
ALAB 7 + number of characters
ABOX 14
AGRID 13
ASCA 17
ALINE, DALINE 5 + 4 * (number of points)
ALINEC 8 + 4 * (number of points)
ALI NED 7 + 4 * (number of points)
ALINEX 7 + 2 * (number of points)
JUB 4-12
8. ~tting calls
a. CALL AINIT(LENGTH)
This must be the first ca11 for a plot, and must be made only
once for each plot. After this ca11 the plot wi11 be considered
to extend from x=o to X=LENGTH, where LENGTH is in 1/100". In
the y direction the paper width is 1 O~ 90 11• LENGTH must lie in
the range 1-20479. The USers project code and the date on which
the job was run will be plotted, and a first alignment box will
be drawn as shown below.
origin
A I I
10!90" I
~_......:.1_" __ )~ IE( __ --=L .... E:l:l,NG2..TH ...... ____ -3Io )1
b. CALL AEND
x)
This call 1.S used to end a plot. A second alignment box wi11
be drawn on top of the one drawn at the start of the plot.
If these boxes do not coincide, .the· plot will be rerun on
request, free of charge. The pen will then move to three
inches beyond the end of the plot, ready to start a new plot.
c. CALL AORIG(IX,IY)
This subroutine defines the point (IX,.IY) as an origin for
future plotting calls. (IX,IY) are the coordinates of the
new' origin measured in 1/100" from the paper origin. The origin
may be redefined any number of times during a plot. It is set
to the paper ori!?;in by any call to AINIT.
JUB 4-13
d. CALL ABOX(IX,IY,NX,NY,IXINC,IYINC,NTHICK)
This call draws a plain box or a box with ticks.
(IX,IY) are the coordinates of the bottom left hand corner of the
box, measured in 1/100"
NX is thE~ number of divisions of the box in the x direction.
NY is the number of divisions of the box In the y direction.
IXINC 1.S the length of each division in the x direction, in 1/100".
IYINC is the length of each division in the y direction, in 1/100".
NTHICK is the line thickness of the outer line of the box, in 1/100".
If NX=NY==I, a plain box IXINC long and IYINC high will be drawn
A I I I
I IYINC
I I- -IT\
I I IYINC V I I \V <- - -- - - -- -- ~ (-~ IXINC
NX=NY=I IXINC NX= 3.NY = 2
e. CALL AGRID(IX,IY,NX,NY,IXINC,IYINC)
This call draws a complete grid. The arguments are as defined
for ABOX.
"" " " .,
! IYINC
IXINC
NX = 4
NY = 3
JUB 4-14
f. CALL ASCA(IX,IY,IXINC,IYINC,ILO,INC,N,IHIGH,IDIREC)
This call will plot a scale of integer number~, each of which must
be in the range -9999 to 9999.
(IX,IY) are the coordinates of the bottom left hand corner. of the ,., '
firs t scale number, in 1/ 100". The bo~t()Ill.",lett;.ha!').,d corner,. is
found by allowing 5 characters (the first few:.Ill.a"y he. plq.tted as , .... ",. . , ..•. , ,-J ;-,:\_.' . ---' ,' •. '.
blanks) for each number; and reading" the fir~.~ . scale number from
the appropriate viewing direction •.
o o o -I <
f2 'bottom left hand .comers' of a scale
number
IXINC,IYINC are the horizontal eX) and vertical (Y) distances
between successive scale numbers, in 1/100".
ILO is the value of the first scale number
INC is the increment (positive or negative) betwecsn. scale number.s
N is the number of scale numbers
IHIGH is the character size in 1/10" (I to 73)
IDIREC is the direction of writing for each scale number. (0-7) as
defined in ALAB)
y
o 000 000 o IJ"'l IJ"'l - I I
(IX, IY)" .-.
IDIREC = 4
lYINC = 0
ItO = -1000
INC == 500
N = 4
Y
X
(IX,IY)
IDlREr .... 2
IXINC .. 'i" 0
3
2
ILO ==
INC == 1
N = 3
X
JUB 4""'15
g. CALL ALAB(IX,IY,ALABEL,N,IHIGH,IDlREC)
This c:all will plot a label of characters; (IX,IY) are the coordinates,
in 1/100" of the bottom left hand corner of the first character of the
label, as viewed from the correct reading position.
AU,BEt is a string of N consecutive characters in core, stored in an
array. The characters may be placed into memory in two ways.
I. By data initialisation
DIMENSION AtABEL (3)
DATA ALABEt/'THIS~~lS~~A~~LABEL'/
2. By reading the characters in A6 format
D!MENSION ALABEL (3)
READ (5, 100) ALABEL
1 00 FORMAT (3A6)
data card THIS~~IS~~A~~LABEL in column I to 18
A liSl: of valid characters is provided below. Alternative forms exist for
each character. To obtain the alternative form, place a $ before and
after the characters for which this form is desired. These extra characters
($) are not plotted, but are included in the value of N. A $ is not needed
if it would be the last character of a label.
LABEL N Characters plotted
$p I 2
ABC$DE$GH 9 ABCdeGH
N is the number ot characters in the label
IHIGH is the character size in 1/10" (1 to 73). All characters·are of
equal width to their height. Characters plotted in directions
1,3,5 or 7 will be 1.4 times as large as specified.
IDIREC is the direction of writing, from a to 7.
ABC
~--------~------~------------------------~--------------------+x IDIREC=O 2 3 4 6 6 7
JUB 4-16
Character CharacterPI.otted Character CharacterPloned
Punched Normal Alternative Punched Normal Alternative
blank blank blank N N
S 0 0 ) ) a: P P + + () Q Q
* * n R R
- - (I S S / / if; T T • • :! U U ( ( r V V = = n A A J B B -
W W X X y y
C C {" Z Z 0 0 d 0 0 E E e 1 1
F F IL 2 2 G G 9 3 3 H H 0 4 4 I I '\l 5 5 J J a 6 6 k k % 7 7 L L (J M M
"
8 8 9 9
h. CALL ALlNE(X,Y,N,XOR,YOR,XSCALE,YSCALE)
This call will plot line segments between the points with co-ordinates
(X(1),Y(1)),(X(2),Y(2)) ••••• (X(N),Y(N))
, /
b..
0 jJ.
& t
> 2:
< x y :S + <> I X
X and Y are vectors of X and Y co-ordinates, each of dimension at least N
N is the number of points
XOR is the value X would take for a point at the origin
YOR is the value Y would take for a point at the origin
(such a point need not in fact be one of those plotted; it is a
hypothetical point)
XSCALE is the number of units of X per inch
YSCALE is the number of units of Yper inch
JUB 4-17
i. CALL ALlNED(X,Y,N,XOR,YOR,XSCALE,YSCAtE,NtINE,NGAP)
This call is similar to ALINE, but a dashed line is drawn.
NLINE is the length of each dash, in 1/100" (1 to 73) NGAP is
the length of the gap between dashes, in 1/100" (I to 73).
j. CALL ALlNEX(IXINIT.IXINC,Y,NtYOR,YSCALE)
This call plo~s lines with a constant X increment between points.
rXINIT is the X coordinate of the first point, in 1/100"
IXINC is the X increment between successive points, in 1/100",
positive or negative.
Y, N, YOR and YSCALE are as defined in ALINE.
k. CALL ALINEC(X,Y,N,XOR,YOR,XSCALE,YSCALE,CHAR,NXOFF,NYOFF,IHtGH,
IDIREC)
This call will draw a specified character at each point determined
by the vectors X and Y. YOR,X,Y,N,XOR,XSCALE and YSCALE
are as defined in ALINE. CHAR contains the character to be plotted,
or $ character if the alternative form is desired. It may be
initia1ised as in the example below.
nATA CHAR/'A~~~~~'/or DATA CHAR/'$A~~~~'/
NXOFF, NYOFF are the X and Y offsets from each point to the bottom
left hand corner (as defined inALAB) of the character to be
drawn.
lataH and IDlREC are as defined in ALAB.
1. CALL ATYPE (ALABEL,N)
This call types a message on the PDPlI teleprinter, and then waits
for the operator to reply before allowing the plot to continue.
The message is contained in ALABEL
ALABEL and N are defined as the ALAB, but alternative forms of
charactel~s are not permitted. N must lie in the range 1 to 1440.
m. CALL ATYPEG (ALAREL,N)
This call is identical to ATYPE, but after typing the message
there is no halt in plotting.
JUB 4-18
9. Use. with .ALGOL programs
1. ALGOL arrays passed to routines ALINE, ALlNEl:, ALINED and.
ALINEX must have a lower bound of. zero
2. ALGOL main programs must have appropriate external de.clarations
for the plotting subroutines c.alled. Procedures must have
appropria.te global forward d,eclara.t.ions. A complete set of
external declarations may be generated by inclusion of. the
stat.ement
$ INCLIJDE "PLOTA/EXTLDECLS"
Global forward declarations may be generated by placing the
fo 1lmying s ta temen ts immediately before the PROCEDURE
declaration.
[
$ INCLUDE "PLOTA/FORWDECLS It
]
10. Bir!di~
ThE~ plotting procedures can be bound by including the statements
$ SET SEPARATE AUTO.BIND
$ BIND=FROM PLOTA/=
in the m;ain program before any other sourc:e sta·tements.
II. Error messages
Error messag.es are output t.o FILE6.; hence the user sho.uld have
FILE6 declared as a printer f He in his main program. In FORTRAN
any WRITE (6, ••• ) statemen.t will accomplish this. Error mess.ages
have the form PLOT ERROR CODE NN, ,...:her.e NN is a two digi t number
indicathlg an error as listed below. Unless otherwise specifi.ed,
an error results in the CALL statement being. ignored. The task
will be terminated after 10'0 error messages.
Code Subroutine Called
AINIT
3 any
Meaning
LENG.TH is less than 1 or greater than
20479
Plotting calls are made other than
between an AINIT - AEND pair
Code Subroutine Called
5 ALAB
6 ALAB
7 ALAB
8 ALAB
9 ALAB
11 ATYPE or A'l'YPEG
I 2 ATYPli! or ATYP£G
14 ASCA
15 MCA
16 ASeA
11 MCA
18 ASeA
19 ASCA
JUB 4-19
Meaning
IDlREC is less than 0 or greater than
7
talGH is less than 0 or greater than
73
N is less than 0 or greater than 2047
The first character is off plot (call
ignored)
the last one or more characters are off
plot, in which case only those on plot
are plotted
A l~bel contains invalid characters.
These will be plotted as blanks.
N is less than 0 or greater than 1440
A label contains invalid characters.
These will be typed as blanks
IHlGH is less than one or greater than
73
IDlREC is less than 0 or greater than
7
the last one or more scale numbers are
off plot; only those on plot will be
plotted
or the first scale is off plot (all
ignored)
N is less than 0 br greater than 20479
Ito is less than -9999 or greater than
9999
INC is less than -20479 or greater
than 20479
Code Subroutine Called
20 ASCA
23 ABOX
24 ACRID or ABOX
25 ALIl:I.'E, ALINED,
DALINE
26 ALINE,ALINED,
DALINE
27 ALINE, ALIMED,
DALINE
29 ALINE, ALI NED ,
DALINE
:30 ALINEX
31 ALINEX
32 ALINEX
33 ALINEX
34 ALINEX
37 ALlNEX
JUB 4-20
Meaning
The last scale number would be less
than ...;,9999 or greater than 9999
NTHICK is less~than on.e or greater than
20
NTHICK lsset to one
The grid or box is not completely on
plot
XSCAL=O
YSCA1=O
A point is oxf plot. It will be plotted
at the nearest point on plot. The call
will be terminated after 25 such points.
N is less than 0
N is less than 0
The first point is off plot
IXINC is les\s than -20479 or greater
than 20479
The last one or more points are off plot.
Only those on plot will be plotted
A point is off plot in the y direction.
Itwillbeplo.tted at the nea::est point
on plot. The .call will be terminated
after.25 such points.
YSCAL=O
Code Subroutine
41 ALINEC
42 ALINEC
L.3 ALINEC
£14 ALINEC
46 ALINEC
47 ALINEC
51 ALINED
52 ALINED
99
Called
JUB 4-21
Meaning
Illegal character in CHA-~
IHIGH is less than one or greater than 73
IDlREC is less than O'or greater than 7
N is less than 0
XSCAL • 0 or YSCAL = 0
A character is off plot. The call is
tet'minated
NCAP not in range 1 - 73
NLINE not in range 1 - 73
More than 100 error messages generated.
The job step will be terminated.
A Presentation of Parallel Pro.c:essing
by J. Levin
JUB 4-22
(Consultant on Application eSof.twar:e fo.r the Eindhoven University
of Technology).
Abstract:
This paper illustrates the us·e of multitasking to speed up the
execution .of a program, written in Exte:tlded Algo.l, and intended
to run alone, in block-computer-time, on.a multiprocessor system.
To illustrate these concepts, we have chosen an example on weather
forecasting, in order to show that multitasking can be used
a. in it.E~rative processes, where several processors can be
synchronized to update, in parallel, the same array;
b. in the computation of the right hand sides of the differential
equations, wh-ere s.everal proc:essors may share the computation.
1. The Model.
We are going to explain how to implement parallel processing,
illustrating with snapshots the synchronization between processors.
The following example has been chosen because it shows how
several processors can work simu1.tarreously on the same iterative
process.
I. I. The mathematical formulation.
ive will consider the time evolution of a portion of the
atmosphere over the nex.t 36 hours. The first step is to have
.:1. good and simple model. In this madel, the atmosphere is
schematized as being made of 3 layers.
The second step is to writ'e the mathematical equations of
the model. These equations are a pre.cise way of expressing
the laws governing the model. Rere we consider the functions:
Zl = Z(300),ZM == Z(500), Z0 = Z(850)
which represent the level surfaces of constant pressure,
respectively 300, 500 and 850 mb.
JUB 4-23
Figure
For conveniency, we define the field functions:
PI I == G*(Zl-ZH)/F·0
PH == G*ZM!F0
POI.: G*(ZM-Z0)!F0
JUB 4-24
whelre G == 98t cgs and F0 is related to the Coriolis parameter.
The relations between theB'e Eieldfunc:t:ions (field because
they depend upon a continuous sp,ac.epo:sition) is shown in
fig. 2a.
The third step is to .get thes.eequatio.ns in .discretized
form, the only form.that a .corrrrut:er knows how to handle.
The space is divided using grid .points and field functions POI,
PM and PIt become arrays (the.program llses 32 x 25 dimension
arrays) .• See fiR. I.
As shown on fig. 2b, each type of equation gives rise to a
procedure call: Procedures PITTERATION (for POISSON
ITERATION) and HITTERATION (for HELMHOr;TZ ITERATION)
respectively handle both types .of differential equations
in equa tions ].
Procedure Haas handles the Taylor expansion expressed in
equations 2.
The last step is to write the prograIlL,which, when executed,
will lead to results o.f significance to the study of our
model. The structure of the .main program is shown helow,
on fig. 3a, b, and the way executio.n isp:erformed by one
processor is shown on fig,. 3e.
On this last drawing., execution of an .iterative process
(POISSON or HELMHOLTZ) is marked by adcublearrow, a single
arrow meaning execution in the main prc\gram.
JUB 4-25
Computation of the Forces
. .........-'~
Equations I ----- -~ "\ ... ,*",,,,,,.-~
'Poisson iteration procedure 1.1
1.2
\.1
1.4
1..5
1.6
__ -- ;IV' 2 -- - .;#/11
'V (dpn) == FI ..- .. ~ 2 .(!/Jt I II
(,v -aoa) dpol + aol x dpIl := F'2 = a05 x dpn + F2' }
2 /// =;=:::',=.==1 ...... He lmho 1 tz (v -ala) dplI + al t x dpol ... P'3 == al5 x dpn + F3 II 2 //U
V (dpm) = F'4 :!: ao x dpol + at x dpll + Ft+/ procedure
t·emp ... (84. 7xdpo 1-48. 3xdpn) x t 0-6 + F6 1f / dW == FIS = -13 x W x 10-4
x temp + FS,t
Equations 2
2. 1 pol(t+dt) = pol(t-dt) + :2 x dt )( dpol(t)
2.2 pll(t+dt) == pI 1 (t-de) + 2 x dt x dpll (t)
2.3 pm(t+dt) e pm(t-dt) + 2 x dt x dpm(t)
2.4 W(t+dt) == W(t-dt) + 2 x dt x dW(t)
Figure 2a
Mathematical equations
Figure 2
} =====t ....... 8
Figure 2b
Corresponding pro
cedures
JUB 4-26
1 .2. The Poisson i tera·tion procedure (PI'1'TE:lM.::r~ON).
Before going into the details of impleweotingpara.llel processing,
we give some de,t.ai 1s oJ}' the Po.i.~son I tera tionp'rpcedure,
see fig. 4.
The Helmholtz itera.tion pro~edtlct'~ is mo-re complex 8;1,'I.p.wiH notoe
shown. During exe.cution of ~thePois,s,0nit.e:ra;:!:.i:.Qnproc·e!i4:,re, a sub
array A I of arr.ay A (we tliS,e he'!"!! fo'!' illust:ra:t;Lona o,(H;lple dimens ion
array A[i,jJ instead of the on,e dll\l'enS'i.pp,al .;Ir'!:'ay DPM[G] used in
the program) is updated. Thes,caMill$ of a:rray AI is Elene from left
to right .and to;p to ho.,tto.m.D:uring the scanI1i)'."!g, each element A[ i ,j ]
of thesuharray A I is update.d, using the v;alu.e;s of the neighbouring
elements ACi-l,j], A[i,j-l], A[i,j+IJ, A[i+l,JJ a:n9 A[i,jJ itself,
see fig. 5.
I . 3 • Remark: itwi.n b.e useful tonotiee, in the s;y~chroI\,;tza tion of the
prQcessors (paragraph IlI)t:hat . the ~o~ta·tion ofALi,j ] uses up""
dated elements A[i-l,j] and A[i~j ... IJ, ~pdated dUi7irig the same "s,canll,
while A[i+1 ,nand ACi,j+lJ Wer:e :updated in the preceeding scan only.
Procedures UainProgram
START: % Initia1.i.~ation
AGAIN: %.Time lo,op
.. 'PITTE:RATION (DPO 1.).;
II ... ~HI'1'TE:RA'IIQN;
PITTERATrON(F) ;
GO TO AGAIN;
Figure 3a Figure 3c
Comment: One task version. Since ,there i,sQP,lyop,e task, the "Master",
execution is shown by .astraigntline • .j,.goI.;lO;lear::row emphasizes
ex,ecution in .an l:terative l'r.oc.e.s'$ (P,oiS~onO'r :Rel;mholtz).
PROCEDURE PITTERATI0N(F); AR~Y F[O];
BEGIN
DEJi'INE CC :: NN - 5#;
BB := (MM-3) x NN + 3;
1 DO % Poisson iteration loop
BEGIN
HAXlmJl1 :,.. 0;
I := 2 x NN + 3;
DO BEGIN
2 J := (G := I) + CC;
Ql := DPM[G-lj;
Q2 := DPM[G];
DO BEGIN
QI := OPMtG] := * -
JUB 4-27
K := (REAOtOCK(DPM[G+l],Q2) x 4 - DPH[G+NN] -
Ql ... DPMtG-NNJ - Q2 + F[G]) x L;
IF ADS (K) > MAXIMUM THEN MAXIMmf : = ADS (K) ;
END;
UNTIL G := G + 1 > J;
END;
UNTIL I := * + NN > BB;
END;
UNTIL ST + S := S + 1 G:EQ STEP OR HAXIMUM LEQ PEPS;
3 ENI);
Comment: Numbers 1, 2, 3 mark the place where the procedure
must be expanded in order to get full synchronization between
2 processors.
Figure 4
A[i,j-l J ...........
-m
Scanning is from left to right and fro top to bottom
...
JUB 4-28
A[i-l,jJ A[i,j J \ -I'
\ / f.raY 0 \: I ~Ubarray) ~
~ I'\. A.' r-........ ..... I
:::-- :!II.. , ~ 1'- ........ t:::::. Il\
~ \ I ,
t:.. I \ I \
I \ I \
A[i+l,j] . A[i,j+l J
Figure 5
JUB 4-29
II. Multitasking. (')
2.1. The Asynchrone process.
The idea is the following: We want to get 2 processors working
at the same time on the same iterative process, updating the
same array. In order to minimize the waiting time if both
processors did try to update the same array element, we
thought it would be wise to have one processor (the "Master")
scanning the array from left to right, the other processor
(the "Son") scanning the array from right to left, see fig. 6.
Les us study the main program again (fig. 3b).
In the time loop, we have to execute successively 3 iterative
processes, and the best efficiency will result if the "son"
assists the ''Master'' in each iterative process. In the
remainder of the program, only one .processor can perform the
computation, and ~e will suppose below that this is always
the job of the "Master".
Practically, the "son" executes in a procedure, the procedure
ASYNCHPROC, see fig. 7a, which is nearly a copy of the main
program, restricted to execution of the iterative processes , and updating the main array from right to left (using proce-
dures BACKWARD-POISSON and BACKWARD-HELMHOLTZ).
vIe have to be careful not to destroy the order of the
computation. This means that (i) the "son" must wait until
the IImaster" enters an iterative process in order to assist
him in the same iterative process, (ii) the "Master" will
not proceed in the main program before he and the "son" have
both exited from this iterative process.
We show on fig. Sa how events STARTHETASK and THETASKISIDLE
are used to achieve such a control between the two processors.
(') As a prerequisite to the understanding of this section,
we refer the reader to the book of E. I. Organik,
mentioned in reference 1.
JIJB4-30
The exampl.e considers tha.t the "son" has finished first
in the first POISSON.iteration loop, in.theHELMHOLTZ
iteration loop the "'Master" finishes .first, in the second
POISSONitet::ation l:oop,.the"Son" .finishes .first.ag.ain,
see.fig. 8b.
Processor 1 (the ~1as ter \ .,.
, . . '" ,. ,
.~~ 1.._
Proces.sor 2 (11 S ) :t·e :on
..'J
•••
. ., " .--"
I( .Sub:array: -'AIL "
Figure 6
PROCEDURE ASYNCHPROC;
BEGIN •••
WHILE TRUE DO
BEGIN
WAITANDRESET(STARTTHETASK);
CASE WHATWEAREDOING OF
BEGIN
GO ENDITALL;
BPITTERATION(DPOl);
...... =====::::;= BHITTERATION;
, BPITTERATION (F) ;
JUB 4-31
........... t=======~= END; -= SON;
CAUSE(THlTKSKISIOLE); % Signals
% son has finished.
END ETERNALLOOP;
ENDITALL:
END ASYNCHPROC;
Figure 7a
Comment: In multitasking, the "Son" is
eternally looping in the specially
designed Asynchproc procedure.
Figure 7
Figure 7b
Comment: A call on pro
cedure Son is added to
provide with multitas
king in the computation
of the Forces (par. III).
START:
.. PROCESS ASYNCHPROC;
AGAIN:
WHATWEAREDOING := 1;
CAUSE(STARTTHETASK);
4F== PITTERATION (DPO 1 ) ;
1~AITANDRESET(THETASKISIDLE) ;
HHATWEAREDOING := 2;
CAUSE(STARTTHETASK);
= HITTE.RATION;
HAITANDRESET(THETASKISIDLE);
Figure 8a
WHATWEAREDOING :'= 3;
CAUSE (STARTTHETASK) ;
PITTERATION(F);
WAITANDRESET (THETASKISIDLE) ;
GO TO AGAIN;
Shows how to use events to
control the flow of execution
1n case of 2 processors.
Figure. 8
JUB 4-32
Master Son
1 I Main Prog. I
1 Poisson , I
r I Hain Prog. I
~ Helmholtz 1 I
I Main Prog. I I
! Poisson i r Main Prog.
Figure 8b
Execution by 2 processors.
Dashed lines mean the
processor is asleep. Process
in an it.erative loop is
marked by a doub Ie arrow.
JUB 4-33
2.2. The printing.
The printing is considered as a separate task. In that way,
2 processors could be used with most efficiency, hy letting one
processor, the "!laster", control the flow in the main program,
the second processor, the "Son", doing the printing or assisting
the, "Haster" in an iterative loop. Event PRINTING-ALLOWED takes care
tha.t the pi:"inting stops when the "Master" enters an iterative loop
so thcLt the "Son" is free to assist him, and that the printing is
restarted automatically when the "Son" is idle.
2.3. Exe,cu don.
Although the improvements are quite appreciable, the results and
the, way to get them bring two remarks:
a. It is very important that the 2 tasks execute different copies
of the same procedure, usi~g as much as possible local
vat'iables. Since the two processors update the same array, it
is important that the side computations are done using distinct
variables, otherwise the most unforeseeable results will occur.
As a result, it is convenient to localize such variables at
the innest possible level.
b. The results, although exact within the given precision, were not
reproducible, which makes things rather difficult for testing
and not very attractive for demonstration. This difficulty was
solved and the solution is explained in the next paragraph.
The reason for this non reproducibility is related to our
remark 1.3.: In formula I, A[~,j] is computed using the updated
values of ACi-l ,jJ and A[i,j-l]. Now, Hith 2 processors, these
values depend upon the fact that the other processor tnay or may
not ha.ve updated also these values according to where the 2 pro
cessors meet in the array.
Formula I
A[i,j] := * + L x (A[i+j] + A[i-l,j] + A[i,j+l] + A[i,j-l] - 4 x A[i,j] _ Fr i, jJ)
whE!re L is a constant and array F is a given array.
JUB 4-34
III. Synchronization of 2 (or more) processors in an iterative process.
A necessary condition to get reproducible results is that the
2 processors (which are simultaneously executing in the same
iterative process) never update array elements of the same
row (in our example, arrays are 32 x 25).
I t means tha t:
a. They are now both scanning the array fr~m left to right
(or both from right to left).
b. Events MASTEVENT and SONEVENT will keep the 2 processors .apart
from each other, leaving at least one row between them, but
at most the number of rows of Subarray At minus I (20 in our
example). See fig. 9.
The events ~1ASTEVENT and SONEVENT are now included in procedures
PITTERATION and HITTERATION, which are modified and renamed
MPITTERATIONand HHITTERATION for the u11aster,t, SPITTERATION and
SHITTERATION for the "Son".
The corresponding modifications to fig. 4 are presented in fig. 10 a,b
where each number corresponds to an insertion of a part of the
program due to the modification explained above.
First Proce ~sor , At least one row in between t
/ Second Processor thla "Son".
" .. /
• ater " I
.. n'
"'" ( ..... subarray ) I--
A' -\
I 'V
Figure 9
r-r-~
I\t most n Y-1 . rows in bet. een
Comment: Complete synchronization of two processors. Events keep the , two processors apart from each other (not to.o close, nor too far!), while they are now both scanning the array from left to right and top to bottom.
PROCEDURE MPITTERATION;
1
2
FLAG := 1;
COUNTER 1 : '" COUNTER2 : == 0;
CRIT! := 2; CRIT2 := 11;
CRIT3 := 19; CRIT4 := 10;
COUNTE:RI : = * + J;
IF FLAG .. 1 THEN IF COUN'tERl > CRITZ
THEN BEGIN
]'LAG := 0;
CAUSE(MASTEVENT);
END ELSE ELSE
IF FLAG :: 2 THEN IF COUNTER] -
COUNTER2 > CRIT2 THEN
BEGIN
FLAG := 0;
CAUSE(MASTEVENT);
END;
IF COUNTERl - COUNTER2 > CRIT3 THEN
BEGIN
FLAG := 3;
tlTAITANDRESET (SONEVENT) ;
END;
1
2
JUB 4-35
PROCEDURE SPITTERATION
WAITANDRESET(MASTEVENT);
COUNTER2 := * + 1;
IF COUNTERl - COUNTER2 < CRIT!
THEN BEGIN
FLAG := 2;
WAITANDRESET (MASTEVENT) ;
END ;
IF FLAG = 3 THEN IF COUNTER! -
COUNTER2 < CRIT4 THEN
BEGIN
FLAG := OJ
CAUSE(SONEVENT);
END;
3 FLAG : = 0; CRITl : = e-} 000; CAUSE (MASTEVENT) ;3 FLAG : = 0; CRIT3 := 1000; CAUSE(SON
EVENT);
Figure lOa
Comment: ~e "Master" executes now procedure HPITTERATION which is a modification of procedure PITTERATION; The numbers 1, 2. 3 refer to numbers 1, 2, 3 of fig. 4 marking the place "'here to insert the modifications.
Figure 10
Figure lOb
Comment: The "Son" executes procedure SPITTERATION which is a modification of procedure PITTERATION; Notel other modification to be done: change in fig. 4 maximum to maximumt and interchange s and st.
IV. Forcing.
The computation of the forces Fl, ••• F6 and their updated
values F'l, .•• F'6 is actually scattered in the time loop.
JUB 4-36
The computation of the forces can be done quite independantly
at thE~ beginning of the "wee.r" loop, although the computation
of thE~ updated values P'l , ••• F ' 6 should stay where it stands.
The advantage of collecting the Forces at the beginning of
the "Y7e.er" loop is that it becomes easy to get, for example',
the ''}1aster'' computing the first 3 forces, while the "son"
computes the 3 last forces.
In fact, some timing helped us to decide of the best repar
tition of the computation of the forces between the "Haster"
and the "Son".
The practical implementation of parallel processing in the
computation of the forces is shown below in fig. Ila. \.Je make
the fo Howing remarks.
a. For clarity, we have omitted in fig. 11a the cause and
wait statement on STARTTHETASK and THETASKISIDLE
(seen on fig. 8).
On fig. 7b and lIb, we show how to introdu.ce events and a
call on procedure SON in order to get full parallel proces
sing in the Forces.
b. The procedure Q(P,U) (not shown) is a switch between 51
partial computations on (32 x 25 dimension) array A'.
Parameter P is related to the size o,f subarray A', while
parameter U decides on the type of the computation. In order
to implement parallel processing in the forces, we had to
double the number of partial computations so that the.
"Master" and the "Son" now have their own set of variable·s.,
avoiding the difficulty mentioned in 2.3a.
c. Procedure Son is shown below on fig. 12.
START:
HEE.R:
..... 111===========&===============: --:::::::;:;: Q(2,6);Q(3,7); Q(2,8); Q(3,9); %
Q(2,51); Q(3,14);
Q(2.,IO); Q(.3,7); Q(2,11); Q(3,12);
... ...: PITTERATION(DPOI);
Q(2,13); Q(3,14);
Q(l ,49);
Q(I,50);
HITTE'RATION;
Q(3,15);
PITTERATION(F);
Q(2,40); Q(3,41);
Q(3 ,45) ;
Q(3,39); Q(2,38);
Q(2,38); Q(3,44);
Figure lla
Comment: Procedure Q(P,U) is made
% F' 2
% F'3
% F6
%
% 11'5
% F'5
of a case statement with 51 entries
chosen by the '~alue of the second
parameter U. Tne value of P indicates
the size of su'barray At.
Figure II
4-37
AREDOING := 4;
(STARTTHETASK) ;
i',0fDRESET (THE
lSLDLE) ;
ons to get
He 1 processing
the tation of
Fore:
Comment: The single arrows show the reordering of the compnt.? the
Forces. The double arrows attribute Forces F2, F6, FI to Procedure Son
while F5, F3, F4 remain in the main program.
PROCEDURE SON;
BEGIN
Q(2,59); Q(3,60); Q(2,61); Q(3,62);
Q(2,69); Q(3,70);
Q(2,73); Q(3,74);
END;
Figure 12
JUB 4-38
% Computation of F2,
% " F6,
% " F1.
Procedure Son is specially designed so that the "Son" can share with
t.he "!faster" part of the computation of the Forces.
Ackno,",1ledgement:
The author would like to thank: Drs. L.C. Heijboer from the Dutch
Heteorological Institute, who provided the original example program,
but: also for his very stimulating discussions. The author also
ackno,",lledges the benefit of discussions with Hessrs. \~. Holdorp,
E. Nice and R. Vefferyes.
Reference:
I. Elliott I. Organik. Computer System Organization. The ACH Hono
graph Series (February 1973).
JUB 4-39
ALLOCATION OF B6700 COSTS TO USERS AT THE FEDERAL RESERVE BANK OF NEvI YORY...
by Henry J. Pikner
(Federal Reserve Bank of New York)
This paper describes a COmputer COst Allocation system (COCOA) which
charges Qut t~ the users the cost of a Burroughs 6700 installation,
in proportion to the volume of provided services. The installation
features multi·processing and multi-programming, on-line disk storage,
remote access supported by a variety of MCS-s (CANDE, RJE, special
purpose ~fCS-s).
Fig~ 1 shows the COCOA internal structure and the main inputs and
outputs. In addition to the general overview of the system, the paper
pays special attention to teChniques used in solving some marginal problems.
1. INPUTS TO COCOA
- 'l'he set of SUMLOG files. Charges for jobs, tasks and data
communications sessions are based on the data found in the
SUMl.OGs.
- The disk directory. Charges for disk space are based on snap
shots of disk directory.
- List of one-time charges and credits. One-time charges can
include rental of terminal equipment in exclusive use by one
project. fee for dedicated magnetic tapes and like charges.
- Man~Lgement directives. The directives can be direct input to
COCOA (e.g. requirements on rates, opening and closing project
accounts, authorization for charging against a particular account,
permission to charge by default), or they can be instructions
resulting in changed working habits by programmers and production
planners. Such management directives will be reflected in the
SUMLOG files and in the disk directory.
,
MANAGE
MENT
, ...-I-
00 ~
-t-fr:J1 ~ 1-,
.-i-
~ .tl
~I-
, ONE-TIME
CHARGES & CREDITS
.-L
~ E-:< 00 H ~
L---
DISK REFERENCE DATA BASE
(~Nm)
-.51-. -~
E-:< Z
~ ~ ~ ::4
~ j:Q
~ f:«
BILLING l..aJ POLICY 1"'1 ...---
~
~r ·.···FLA ..... T j...:l
II ~ II DSK~ DSK ~
, __ j_ _ I . .. (4 ... HOUl~S) ,it' ~ 4<l--~/lN' DISK ( ~ ,,' . ~ 0
____ X "
~ .. I:Il
H t:\
~
I 11 BILL PRD I ~ I -~
r I 17
SUMLOG
\, \\ COCOA
ENVIRONHENT[> I "4 COCOA INTERNAL STRUCTURR
I-(DAY)
.<1-s:Q o
"1 :J t JTS ~
ii:: '---
JTS L--""---'--' r-L. I t
-I1Pf ~.. BILL O~AILED
I-
COCOA INTERNAL STRUCTURE ~ COCOA <l ENVIRONMENT
Fig. 1. COCOA system
c... c:: tx:!
.I::-
Ik
JUB 4-41
2. OUTPUTS FROM COCOA
are the following reports:
- BILL, printed at the end of a billing period (calendar month).
The BILL shows totals of products (proc. time, input-output time,
lines printed, cards read, cards punched, terminal connect time,
disk spac~ utilization) consumed by a project, and the applicable
total dollar costs. BILL also shows year-to-date totals and
projections for the full year.
- BILLING POLICY, printed once per month, or on request. It tells
the project manager what he can be currently charged for. The
individual instances of actual charging are not included here.
The BILLING POLICY gives the current status of what the COCOA
has been told by the project manager himself (or his predecessor)
over an extended period of time.
- DETAILED BILL, printed only on request. It lists individual instances
of jobs, tasks and sessions and their costs. The DETAILED BILL,
being voluminous and expensive to produce, is supposed to be used
only to substantiate charges, challenged by a project manager as
incorrect. It also could be used to help managers to evaluate
impact of changes in systems.
3. COCOA INTERNAL STRUCTURE f ,
The disk reference data base contains
- list of project accounts, their numbers (charge codes), names,
manager names and addresses;
- list of divisions, departments and their relation to projects;
- authorization tables, permitting a USERCODE to charge against a
PROJECT;
- default tables, allowing to charge by default (when proper charge
code 18 not present in the SUMLOG description of a job) to a
USE RCODE, or JOB/TASK name;
JUB 4-42
- list of disk file names and charge codes which pay for them;
- current rates;
- amounts budgeted by divisions;
- other miscellaneous parameters;
History data accumulated over a period oftime,;are ca.rried on the
following files:
JTS contains one record for each job, task or session in one
month. The file is initialized at the beginning of each
month.
DSK contains one record for e.ach .charged disk file and day
in one month. The file is initialized at the beginning
of each month.
PHD contains one total record for each category of service
Programs
for each project. The record contains both the last month
figures, and the ye.ar-to-date tota.ls • The file is initialized
at the beginning of each year.
RATES ,written in ALGOL/POL, accepts a description of our installation's
inputs and outputs (written in a special English-like
language), converts it into a linear model, solves the
model, and outputs the solution as rates. Theprog'ram is
used once or twice a year.
REFUP ,written in ALGOL/POL, updates the disk reference data
base and lists the contents of the data base. The program
runs as needed.
LISTREF prints the BILLING POLICY report. It is used once a month,
or as needed.
DISKLOG takes snapshot measurements of resident disk files several
times a day, and updates the Ds!{ file. The method of measuring
the disk space is described later.
J-UB 4-43
Put.LJOB analyzes full daily production as recorded by th~ ~1CP
in the SuMLOGs, builds Qne record per job. task 't session,
and idds It to the existing JTS file. ThE! terms "job'!
and "task" are used in exactly the same nieaning as the
MCP a.nd wFL use. The "slassion" is defined in COabA as
services provided to one remote stati~n over a p~tiod
of time, usually delimited by a pair of LOG-ON, tOGMOFF entries in tha SUMLOGs. The full definition of the tsrm "session" is given in rig_ 2.
1 2 3 4 5 6 7 Fig. 2. "t1
1-I"tI ,..,..,. COCOA definition of o r:: = o QJ 0 data communications ~J to .!"4
1-1 Q) t.!l .w session. -A 0 CIS
r:: ... ~
..... 0
m t-'j ~ Cf.l .w
..... r:: ~ "C 'd ,0 Q) tJ Q) r:: Q) ..... ..c til o .w to .w §
~ t) QJ to ?- QJ
f.I Q) 4-1 ~ !l s ..... t.!l fr to 0 . .,. .w o~ .w m 4.1 CIS
~<liClS ell r:: ....., 'M Q) :>; .w. r:: <li +J
~ 1-1
~4-I 'M t.W 4-1 'M .w CIl 'M 0 IE r:: 4!'1 4-1 .~ r::
SUMLOG condition/record 0 ? 0 Q)
the beginning 'H I bo ~ interpreted as tlO til) CoO tIJ ~ Q) 0 0 0 ~ of Iii session ~ H H ..... I::t:
1 Beginning bf thE! stiMLOGs • · C C · • · 2 Log-on entry (4,1) · A A A B 1; C
3 Lag-off entry (4,2) • • .. • · ~ · 4 Log-off (time aacUtli.ulation 4.5) · A A A :a :B c
5 MCS initiation entry (5,2) • • • • · • · 6 MeS ltOJ entry 0,2 or t ,4) .. • i • • • · 1 HIt entry (6,1) .. · c* • • • · 8 'End of the sUMtOGs • • j • • • ·
A •• beginning and end matched on tha Logicll ~tatiOn NUmber
B beginning and end matched on the MCS NwMbet C applicable to ali session entries
* C •• special "sessions ll, with zero connect time
8
to t.!l
~ Cf.l
Q)
..c +J
4-1 0
"C r:: ~
•
C
· C
· · · ·
MIXALL
JUB 4-44
Since the time, elapsed between the beginning of a session
and its end is the main item, from which the charge for
the session is comput.ed, a particular care was taken to
handle its computation pr.operly. The method is described
later in this paper.
aggregates data on DSK and JTS files into totals appropriate
for BILL, merges the aggregated data with FLAT file and
its own previous PRD, and writes the updated version of PRD.
The program runs at the end of each month.
BILLGEN prints the BILL from PRD file. It runs at the end of each
ADHOC
month.
prints DETAILED BILL for selected subset of JTS records.
It is run as requested. The program can also extract data
from JTS file on other than billing basis •
.1+. COMPUTING THE ELAPSED TIME
For certain charges (e.g. length of a data comm. session), and for
ga.thering statistic.s about the installation performance (e.g. time
up) it is of critical importance to compute correctly the actual
elapsed time based on two clock readings as they are logged on
the SUMLOG.
In the description of the method (illustrated by Fig. 3), we shall use
the fa 11 owing symbo 18 :
t astronomical time
a record address of an entry in the SUMLOG file
t (a) astronomical time at the moment when a SUMLOG entry at
address a was written
B(t) reading of the B6700 clock at time t
B(t(a» time-of-day figure in the entry at address a
e(a1,8'2) time elapsed between the moments when SUMLOG entries at a 1,a2 were written.
B
B7t8~--------------------------~~---r----~
B6
B /
/ /
/ /
B B
Fig. 3. Computing the elapsed time
/ /
/ /
/
,
JUB 4-45
JUB 4-46
If the B6700 clock was corr.ect atr aLl. times" then e{ar ,a2)co.uld be
expressed as follows:
( 1 )
However, the machine clock can be reset by the console operator, or
can bE! sensitive to power surg,~s. The computation of e has to take
those facts. into. consideration: As we read the. SI.J!H..OG s.equentially
we try to detect any "unnatur.al" increments in time B be.tween two
subsequent entries. 'What is "unn'atural" is. l.eft to. implement.or's
ima:gination:. The COCOA defines this as a positive. gap longer than
1.0 minutes,. or a negative jump longer than 10 minutes. The address
at which the unnatural increment. was detec.ted, is e:ntere.d into the
linked. list r, and the siz.e· of the incr:ement into the list s.
The~ fc)rmula (2.) appro;ximates the c:or.rec.t. elaps.ed time:
e{a t ,&2.) = B(t(a2») - B(t(a t )) - (2)
5. METHODl OF MEASURING DISK SPACE
The utilization of disk space occupied by one file during. one day,
1S measured as· day length
C - ---;----'r--..-oo:"","" - day tength • f A (t)dt (3)
Q
where A( t) is the actual size of the file at. ins,tant t. As the zero
point for variable t, the beginning of the f.i.rst shift (around 7 - 8 AM)
can bE~ chose:n.
The integral in (3) is actually computed. from discrete me.asurements
of A(t), taken' by the DISKLOG program at: moments t}, t 2 , ••• , tm=day leng.th.
COCOA uses the fo flowing formula:
to = 0, C.(O} = 0
t,. 1. C(t. 1) + (t.-t,. I)·A(t.) (
1- 1- ]. :1.-' 1 C t,) = -------------
1 t, 1
C = crt ) 'm
for i = 1, 2, ••• , m (4)
JUB 4-47
I A I I .
c I I
I
I I I
I I I I I I I ,
0 tl :t2 It~ t
ADDED WEIGHT
OLD HEIGHT ADDED WEIGHT ADDEn
OLD WEIGHT WEIGHT
Fig. 4. Method of measuring disk space
The method of integration, described by (4), is economi~al in terms of
memory (disk) needed to remember values from one measurement to the next:
only one value per file (the C(t. 1) is needed at t •• Value of t. 1 is 1- 1 1-
common to all files whose memory is measured and recorded.
Mailing list of JUB6700
corrections and additions.
Institutes, additions
Christian Rovsing A/S
tfarielundvej 46B
HeI'lev 2730, Denmark
Cia. de Process.amento de Dados
do estado do Rio Grande do Sul
RuB. Caldas Junior, 120-12. 0 Andar
Porto Alegre-RGS, Brasil
City of Leicester Polytechnic
Computer Gentre
PO Box 143, Leicester LEI 9BH, England
Data Processing Division
ROQIll 7-115
International Honetary Fund
WaSlhington, DC 20431
Depart(amento de Computacion,
Uni::versidad Central de Venezuela
P.O. Box 59002
Caracas, Venezuela
Estado do Rio Grande do SuI
Centro de Processamento de Dados
Secretaria da Fazenda
Porto Alegre, Rio Grande do SuI, Brasi:l
Kon. Ned. Meteor. Instituut
Utrechtseweg 297
De Bilt, Netherlands
JUB 4-48
c/o Anker B.erg-Sonne
c/o .Marili-a Perrone
c/o A.H. Wise
c/o Ernestine S. Butler
c/o Luis Marzulli
c/o Regis de Melo Huller
c/o B. Heijna
Universidade Federal do Rio Grande do Sul
Centro de Processamento de Dados
Edifido da Esc-ola de Engenahria
Av. Osvaldo Aranha
90000 Porto Alegre - RS, Brasil
university of. the Pacific
Co~puter Services
Stc)ckton, California, USA
University of Tasmania
C,omputing Centre
Box 252 C, C.P.O.
Bobart, Tasmania, Australia
I~stitutesJ corrections
American Hospital Supply
page JUB 1 ... 21:
American Hospital Supply Corporation
Management Services Center
I 400 l~aukegan Road
McGaw Park, Illinois 60085, USA
Boise Cascade E&C Group Central
Computer Facility
page JUB 1-21:
Ebasco Services Incorporated
Two Rector Street
New York, New York 10006. USA
Universidade Federal do Rio de Janeiro
page JUB 3-62:
Universidade Federal do Rio de Janeiro
c/o •••• = Nucleo de Computa~ao Electronica
Caixa Postal 2324, ze.oo 20000 Rio de Janeiro - CB, arasil
JUB 4-49
c/o Hanoel Luiz Le~o
c/o Donald E. Price
c/o •••
c/o Harvey L. Cohen
c/o joel Koppelman
c/o kosa Maria de Oliveira Varella
Victoria University of Wellington
page JUB 3-'63:
Victoria University of \\Iellingt.on.,
Conputing S'ervices Centre
Private Bag
Wellington, New Zeal.and
Jun 4-50
c/o Robert H. Gordon
JUB4- 51
Mailing s t of Burroughs-repre.sentatives, additions
* Mr. Jacques Levin,
Conifeerstraat 3, Arnhem, NetheTlands
* Mr. J" ter ELLen, Manager Product Promotion, Burrougb:s B. V.
Prof. E.M. I>1eijerslaan2, P.O. Box 48,
Amstelveen, NetheTlands
* Mr. E. J. Brown, Pro j ec t Manage r Large Systems Sup:po,rt Gro,up,
Burroughs del Peru, ApaTtado 5199,
Lima, Peru
* Mr. G. A. Rumpf, Manager Sys.tem Support Group' III, Burroughs Ltd;
P.O. Box 464, North Sydney N. S .. W. 20:60, Australia
* Mr. Raymond F. Pierce
LSSG, Cia Burroughs Mexicana SA
Av. Ejercito Nacional 1005
Mexico 10 DF, Mexico (15 copie-s)
* Mr. Enrique Pena,
LS8M, Campania Burroughs d.e Maquinas Ltda.
lng. Huergo 965,
Buenos Aires, Argentina
Burroughs-representatives, corrections
Mr. R. I. Meyer
page JUB 1-32:
Mr. Ruben I. Meyer, Manager LSSG;"'Mexico,
Cia. Burroughs Mexicana~ S .A.
Av. Ej erci to Nacional 1005,
Mexico 10, D.F. Mexico
* Mr. R.W. 8cholma
page JUB 1-32:
Mr. R.W. Scholma, InternaL Group
Burroughs Corporation
P.O. Box 418, Detroit, Michigan 48232, USA