Sidebar 8: CDC Cybers, operating systems, utilities and manuals; Cray
CDC Cybers, operating systems, utilities and manuals; Cray
Started 7 June 2022, Last updated: 4 July 2022.
Last update 17 Jul 2023 to add more material on CDC, and a link to CDC Facebook page.
Robert C. Bell
CDC (Control Data Corporation)
CDC dominated the market for ‘scientific’ computers for decades, from the early days with Seymour Cray’s designs through to the Cray Research era from the mid-1970s. There is a Facebook page devoted to memories of CDC: Control Data Corporation Public FB Group
I posted the following on the group page on 13 July 2023.
I have uncovered a trove of Control Data Corporation (CDC) manuals from 1985 – when CSIRO de-commissioned the Cyber 76 and from 1990 – when PAXUS de-commissioned the Cyber 205. I have scanned the following:
CDC_Instruction_Timing_extract_60367200 CDC_Cyber_200_Model_205_Computer_System_Hardware_Reference_Manual_60256020 CDC_Fortran_200_Version_1_Reference_Manual_60480200 CDC_Fortran_Extended_Version_4_Reference_Manual_60497800 CDC_Fortran_Extended_Version_4_to_5_Conversion_Aid_60483000 CDC_Modify_Reference_Manual_60450100 CDC_Remote_Host_Facility.60460620 CDC_SCOPE_2_Loader_reference_Manual_60454780 CDC_SCOPE_2.1_Diagnostic_Handbook_60344100 CDC_SCOPE_2.1_Reference_Manual_60342600 CDC_SCOPE_2.1_USER'S_GUIDE_60372600 CDC_Update_Version_1_Reference_Manual_60449900 CDC_VSOS_Version_2_Reference_Manual_Vol_1_of_2_60459410 CDC.Manuals.docx Control_Data_Cyber_70_Model_72_Computer_System_System_Description_60347000 Control_Data_Cyber_70_Models_72,73,74_Instruction_Descriptions_60347300 ETA_CDC_Cyber_205_CIA_Reference_Manual_PUB-1057.pdf
I plan to recycle these manuals shortly.
Many CDC manuals are available at bitsavers, but there are not many relevant to the Cyber 76, and the above are often later versions.
CDC did a thorough job with its manuals. Each revision of the underlying product came with a set of updated pages for the manuals (starting with a pink page), minor changes to the pages were marked in the margin so you could quickly scan for changes relevant to your work. The reasons for the change were detailed, and each page carried a revision letter. Here are some samples showing an early cover page, a list of effective pages, a revision packet, a revision record, and a later smaller-format manual.
Appendix 7, picture 7 shows a manual in a typical three-ringed folder, held together with Chicago bolts (of various sizes). I’ve uploaded one manual as a sample here – it is the manual for the Update source code manager.
The Cyber 76 ran the SCOPE 2 operating system – not to be confused with the early SCOPE OS on the 3000 series machines, or the later SCOPE 3 variants on the lower Cybers. SCOPE stood for Supervisory Control Of Program Execution.
SCOPE 2 had a number of advantages – it had a universal record structure (W-records) for all on-line files, unlike the confusing variety of records structures on other Cybers, often derived from magnetic tape formats. Dave Micklethwaite who worked for both CDC and Cray Research (as did many) told me once that SCOPE 2 was written, and then the company left it alone: which was an advantage. There were additions in later stages, such as the Cyber Control Language (CCL), which was common to all the Cybers, and greatly enhanced the flexibility in job directives. Here’s a sample use of CCL.
begin,,input,ver=11,newver=12,dovsos,test, cva,rva,vaver=11,vdefcn. *EOR .proc,proc,ver=,newver=,test=f/t,donos=f/t,dovsos=f/t,fiche=f/t,sysname=va, cva=f/t,rva=f/t,vaver=,vdefcn=f/t, id=cmpxrb,sysid=cmpxrb,tfs=f/t,opt=2,tk=,splitout=f/t, vtvalue=4/8,veditbin=f/t,vfiche=f/t, *INC,UPUPW .ife,fiche,dofiche1. rewind,output,out. copy,output,out. rewind,output,out. titlabs. copy,out. .endif,dofiche1. ....
The genius of the CSIRO implementation of SCOPE 2 on the Cyber 76 was the grafting on of an interactive system. DCR abandoned the idea of acquiring lower Cybers as front-ends, and instead doubled the size of the Large Core Memory (LCM). DCR tricked SCOPE into thinking it had two permanently-mounted tape drives, one for reading and one for writing, and the network was attached to these. An interactive system was built, principally around the Ed editor, but also allowing job submission and interrogation, routing of output and management of data. Given the limitations on the number of files that the permanent file system could handle with a flat file system, DCR expanded the role of partitions in binary libraries to hold arbitrary text, with Ed libraries being one of the unexpected treasures with the ability to add arbitrary text metadata to data. Over 100 interactive users could be happily supported with minimal delays to responses. Henry Hudson was largely responsible for this suite – a triumph which he unfortunately did not live to see to its climax, suffering a fatal heart attack at his desk.
The Update utility
Update grew out of earlier products such as COSY (COmpressed SYmbol) on the 3000 series.
Update provided a means to store source code, and then add to it or modify, while keeping a record of all changes. It reflected the usual input medium of its time, punched cards, but allowed the user to divorce from actual punched cards. Here is an extract from an initial run of Update, to create a library of “decks” and “comdecks”. (This was a program called VAUD, based on an earlier one called AUD written for the Cyber 76 by Mike Dallwitz, to provide a useful audit of files on the Cyber 205 under VSOS.)
C Set up the program version.
prgver = ‘1.0’
Write (*,'(a)’) ‘b’
Write (*,*) ‘Program ‘ // prgnam // ‘, version ‘, prgver, ‘.’
C History of program Aud.
C 1985 Apr 23.
C Version 1.
1 (audin,unit5=audin, output,unit6=output,unit10=output)
C This program produces a sorted audit listing of a user’s
C VSOS permanent files in a neat format.
Update saved the code in a library, with each line identified with a deckname and number, which could be subsequently addressed. It also emitted a compile file containing the current version of the code, ready for passing to the compiler.
Here’s an extract from the first modification run:
*IDENT 2-A *COMPILE AUD,BLOCKDATA,AUDDATA *DEFINE CYB205 *COMPILE UERRV2 *COMPILE COMSETVER *DECLARE COMSETVER *d comsetver.4 prgver = '2.0' *COMPILE HISTORY *DECLARE HISTORY *b history.21 C C 1985 Apr 24. C Version 2.
Lines introduced by an ident were labelled with the ident and a number, for subsequent reference, and an updated library could be saved. The basic directives were *ident, *delete, *insert and *before which could be abbreviated. You can see version control with the directive *DEFINE CYB205 .
(When a new version of the OS or products was released by CDC, it provided an update library with the latest version. On site, DCR could temporarily rescind later ‘mods’, and then apply them selectively while checking for compatibility with local modifications.)
Here’s an extract from the last modification run, with a telling message.
1 call remark (‘ Aud ‘ // prgver(1:2) // ‘, 1988 Apr 22.’ //
2 ‘ Post-privatization CSIRO charge increase.’)
Cyber 205 and VSOS
Fortran 200 was the Fortran compiler for the Cyber 205 under VSOS, documented in the manual CDC_Fortran_200_Version_1_Reference_Manual_60480200.
The inside back cover shows a list of Q7 and Q8 calls. Q7 calls provided access to operating system functions, while Q8 calls provided access to the hardware instructions. The ones shown below took standard Fortran arguments, but the Q8 special calls listed last below provided means to embed specific machine instructions into the Fortran code, including vector instructions.
For example, when the UK Met Office acquired its Cyber 205, the compiler did not support half (32-bit) floating point format, which the Met Office wanted to use to conserve memory and increase performance. Clive Temperton coded Fast Fourier Transform routines in half precision, with most of the code consisting of Q8 calls. Here is a sample, with the vector instructions having a V as the last letter in the Q8 calls.
C C IF LA=1, HALVE K=0 & K=N/2 COEFFS C --------------------------------- IF (LA.NE.1) GO TO 100 CALL Q8PACK(LOT,AD,AIA) CALL Q8RTOR(ZHALF,,16) CALL Q8MPYSV(X'10',,16,,AIA,,AIA) IF (MOD(N,2).EQ.1) GO TO 100 IB=(N-1)*LOT CALL Q8SHIFTI(IB,6,IB) CALL Q8ADDX(AIA,IB,AIB) CALL Q8RTOR(ZHALF,,16) CALL Q8MPYSV(X'10',,16,,AIB,,AIB) 100 CONTINUE
I have on microfiche a set of Cray Research UNICOS manuals from the early 1990s.
I gave a talk to a CSIRO IMT Webinar entitled Why Cray? on 30 June 2022, to mark the arrival of the Cray EX system setonix at the Pawsey Supercomputing Centre.