Computing and calculating

When I was in junior school, the emphasis was on "mental arithmetic" - doing sums in your head. I was mathematically inclined and usually did rather well at "mental arithmetic".

In secondary school, more elaborate calculation was needed. For physics and chemistry, a 10 inch slide rule was mostly adequate - I had a "Aristo Scholar" which served me well. For more accuracy, 4 figure log tables were used - I had "Knotts four-figure mathematical tables" - with the outside copiously decorated with useful formulae.

Stantec Zebra

My first meeting with electronic computation was in the summer of 1961 when I worked as a vacation student for Stantec. This was a division of Standard Telephone and Cables (STC) which had a base in Newport (S. Wales). They had set up a computing division which was housed in a separate 4 storey building in Corporation Road. At this site, they made the "Zebra" computer - a vacuum tube (valve) computer which was physically large and had a prodigious power consumption to keep all the valves glowing (6 KVA). Because the valves had heating filaments, the mean time between breakdowns (MTBF) was not good - sometimes failure in 30 minutes as I recall. The wiring was constructed using "wire-wrap" which was considered to be more reliable than soldering. One complete Zebra was sited on the ground floor near the entrance as a demonstration model. Some crystallographers from Cardiff University sometimes came over to make use of it.

My job was in programming and we were on the top floor. I was first shown the programming language - there was a "simple code" which was fairly simple to use but was very slow. As I recall, it achieved 30 flops (compared to several hundred gigaflops which are usually available in 2012). Input was by paper tape (5 hole teleprinter tape) and it was a single user machine. It had a telephone dial on the console and one could write a program that took different branches depending on the number dialled. There was a CRT display which showed the contents of registers in binary and could be used to check progress. Output was a teleprinter.

I soon progressed to the "normal code", which was the basic microcode of the Zebra. Different bits in each instruction opened/closed different gates: one basically had the circuit diagram in mind when programming. Another "feature" was that the main storage was a rotating cylinder: it took 32 cycles to go round - so you had to write your program bearing this in mind if you wanted to access or write data. There were a few ferrite registers which were accessible every cycle as well.

I was told that when they sent the cylindrical storage drum off to be nickel-plated, it came back not working as a magnetic store. Inquiries revealed that the plating company noted that nickel-plating was rather dull so they chromium-plated it instead.

I was allowed to run programs on the demo Zebra and managed to program a brain-teaser successfully. One had to make sure the program did not run for too long - since the MTBF was so short. One of my colleagues worked in manufacture and was often available to swap a "crate" when there was a valve failure...

My job was actually to develop test programs for a transistorised version of the Zebra which was under development. This was going to have some dedicated multiplication electronics (rather that just doing "long multiplication" as on the valve version). I actually managed to write one program that was deemed useful and put in the library: although all it did was print out the binary contents of registers.

links 1, 2and 3.

Oxford University 1960-66

As an undergraduate physics student (1960-3), I had no need of further computational resources than my trusty slide rule and log tables that I had used at school.

As a graduate student (1963-6), I had access to the university computer. I went on a course to learn Ferranti Mercury autocode but never used my knowledge. A year or two later, a KDF9 (built by English Electric, transistorised) was installed and I did run Algol 60 programs on that. This involved paper tape (now 8-hole not 5-hole). The trick was to leave gaps in the paper tape so that one could make corrections (all 8 holes punched was disregarded, so one could erase a section and splice in a new piece...). As a service, the turn-around was often slow - so debugging could be time consuming.

While a graduate student, I also had access to electrical-mechanical calculators. I made no use of them but I do remember helping a non-scientist to work out square roots for some statistical analysis on one.

see links 1 and 2.

Mainframes to 1969

My first post-doc research job was in the Rutherford Laboratory (now the Rutherford Appleton Laboratory) near Didcot. There was a Ferranti Atlas supercomputer at the computer lab located alongside the site. This had the reputation of being very fast and very hard to use. At this time an IMB 360/75 computer was installed for the Rutherford itself. This had a Fortran compiler and I taught myself Fortran from the IBM computer manual. This used punched cards as input and I learnt how to operate a punched card machine. Turnaround was quite good (my office was close to the computer) and I was able to get useful programs running effectively.

My workhorse was a minimisation program. VA04A was suitable and available as a Fortran set of cards. This enabled solution of minimise/maximise problems such as fitting parameters in a formula to data.

see links 1, 2.

Mainframes at CERN 1969-74

In 1969 I went to CERN as a Fellow in the TP division. At that time CERN still used CDC6600 computers providing a batch service. This involved punched card input and output from a "line printer". Magnetic tape input/output was also available.

see link 1.

Later (towards 1972), CERN developed a distributed system called FOCUS with teletype terminals in different locations, including one near my office in TP division. This was a new experience: needing a password to get going.

see link 1.

Liverpool University 1974-

After moving to Liverpool, I used a variety of "mainframe" computers: at Daresbury, at Rutherford and in the Physics Department at Liverpool. By this time it was becoming easier to use a computer remotely from a "dumb" terminal. One still had to walk to submit cards or to extract computer printout.

Personal Computing

Let me focus hereon on personal computing:

In 1980 Clive Sinclair released the ZX80. This was available for £100. It relied on a TV screen for display and a cassette recorder for storage of programs. With a Z80 processor and only 1 kbyte of memory, it was not very powerful. It came with a BASIC interpreter which could enable quite complex programs to be written within the limitations.

There were 2 basic flaws: the cassette input/output was not buffered so the cassette recorder used needed exactly the correct speed (eg battery state); and the ZX80 used its CPU to process the output to the TV, so that the screen went blank when it was computing.

I rose to the challenge and wrote a program in assembler which computed during the "fly-back" period only, so that the screen display stayed on. This needed to have a code which took the same time to excute (the fly-back time) irrespective of branches. What I wrote was a "Zpace Invaders" program - which my sons certainly enjoyed playing. See here . With the advent of the ZX81, this work-around was no longer needed.

see also ZX80.

In 1985/6, I was on leave in the USA for a year and I decided to buy an IBM Portable Personal Computer 5155 model 68 - the "luggable computer". This had a CGA amber CRT display, 2 floppy drives and little else. I bought a TECMAR card to upgrade the memory and provide graphics. Also a modem to allow connection from home (at 300bps, later 1200/75 bps).

With this computer, I could program and communicate (just). My pièce de résistance was a simulation of the Ising model in 3 dimensions that ran using each of the 16 bits of a word in parallel. This made the net updating speed quite high, despite the lowely clock rate (4 MHz). I was able to run this program in a classroom full of IBM PC AT computers overnight at UoI - obtaining 10^12 spin updates and disproving some previous results that had caused much concern. See here .

It was around this time that I changed to writing papers myself directly on the computer - hitherto one wrote them longhand and asked a secretary to type them up. I used ChiWriter for a while - as an easier way to handle scientific input than TeX. Eventually, I joined the TeX/LaTeX convention.

Many experts have sneered somewhat when they learn that my editor of choice is MicroEMACS. This is quick, portable and can run on any platform. Moreover Linus Torvalds himself says he finds it perfect.

I have quite a history of editors/word-processors. Early terminal access to mainframes involved some quite ugly editors, then Xedit became available. On the early IBM PC's I used Kedit (an improved version of the basic IBM mainframe editor Xedit). Then ChiWriter itself had an inbuilt editor. Now I mostly edit mark-up documents (LaTeX, html), Fortran code or Shell scripts using MicroEMACS.

On my desk in work I had a IBM PC AT and then we changed over to Unix and I had a series of SUN workstations. Eventually a PC running Linux was a more economical solution...

As a way to learn the programming language C, I decided to write a computer version of the game "connect 4". The computer uses game theory tree methods to find optimal moves (best outcome irrespective of opponents move). One also needs "heuristics": guesses of good moves when many moves have similar outcomes. I did wonder if I could get the code to reach the end to establish if, with best play, the game is a draw or a win for the first mover. I ran out of memory in my implementation, but I believe that it has been shown that a win is the outcome.

see also game theory

My code performs at a higher level than me - I can't beat it unless I decrease the look-ahead to a very low level. Code see here .

Another trip to the USA in 1994 allowed me to buy another laptop: running Windows 3, although I still used DOS on it most of the time. I had some DOS code that emulated many of the Unix commands, so I could use similar commands in work as at home.

Yet another US trip in 2000 allowed me to buy a newer laptop: a Compaq that had a nice colour screen and ran windows 98. I now have a (rather ancient) Dell laptop with Windows XP / Linux options. But my (Android) mobile phone has Linux too!

Electronic Communication

Universities were early adopters of e-mail. JANET (linking UK sites) was in use by me from 1985 on and other networks such as BITNET (IBM hosted) and ARPANET helped for international links. During my sabatical year 1985/6 I was able to keep in touch with my students at Liverpool from Illinois and then from CERN.

In order to get access to computers (and e-mail) I had a modem connected to the phone line from my personal computer. This dial-up service was initially rather unreliable. I first used it in Illinois in 1985 from a personal computer at 300 baud. This was fast enough to accept typed commands but too slow to show a lot of results. Local telephone calls were free in Illinois too, which helped. In Switzerland in 1986, I had to use an "acoustic coupler" because of local regulations -- put the actual phone handset in a special box which had microphone and speaker connected to the PC; again at 300 baud.

As time went by, 1200/75 baud modems became available -- this provided a usable rate for keeping an eye on programs running on remote computers. Eventually dial-up services got close to 56000 baud which was the theoretical limit for sending data down a "voice" line.

With the advent of broadband, speeds have moved ever faster and reliability has improved greatly too.

As university sites became interconnected electronically, it made sense to make "preprints" available, Thus outside physicists could obtain and read ones latest research without waiting for postal delivery.
At first, this was achieved using "autonomous FTP". This was "clunky" and made finding these preprints hard to do. So some bright guy at CERN decided to improved the system: Tim Berners-Lee and hypertext: the internet as we know it started in 1990.
One of the first effective internet browsers (Mosaic) was developed at Illinois (Urbana-Champaign) from 1992. The Arxiv repository of preprints started in 1991 and facilitated the dissemination of research.

For information on calculators see here.