Experiences with the Cray X/MP

In the later 1980s I spent much time working around Cray equipment, in particular an X-MP/24. This page has links to two papers written at the time.

The first was delivered at a Cray Users' Group meeting, Seattle, May 1986 (great trip; attendees were treated to a minor-VIP visit to the Boeing 747 factory). It tells of our experiences with pre-release and early versions of Unicos, at a time when CRI was beginning to get committed to making it their main operating system. It's a tiny bit grouchy in places, though in the main friendly. One has to remember that Cray Research was faced with questions about continuing their own operating system, or using those developed at LANL or LLNL, or the upstart Unix.

As the first paper describes, Bell Labs was an early adopter of Cray Research machines (a low serial # Cray 1). By 1982, we had a C compiler and library for the Cray/1, done by Rich Lee and Delores Clark; in 1985, at the CUG spring meeting in Stockholm, Nils-Peter Nelson delivered a talk about plans to acquire an X/MP and how Unicos would be used with it (and plumping Unix in general).

newNelson saved the purchase order for the X/MP; at $10M+, it was the largest we've seen before or since. It's visible in JPEG format here. The order was delayed for several months because some military contractor exercised an old Korean-war era rule involving military priorities, and snatched ours. This embarrassed Cray, and they apologized by giving us a signficant price break on the follow-up purchase of an SSD (solid-state secondary disk device).

By the time the paper appearing first below was delivered, the X/MP had arrived. It was not quite so early in its line as the C/1, though I think our SN 127 was about the last of the machines produced using static memory chips. Bell Labs was, I suppose, somewhat strategic for CRI, though we were not a big $ customer like the DoE or DoD or NCAR, or the oil or automobile companies. Still, because CRI was committing its concentration on Unicos and system programming in C, we were treated as important.

These machines were mainly used and justified for circuit design, simulation, and device modeling in the physical sciences and microelectronics areas, and partly to do numerical and systems work in the information sciences area. After the X/MP described in these two papers left, a smallish (only 2 CPU) Y/MP was obtained, and it lived just around the corner from my office. By that time, the research group wasn't making much use of the machine, and the efforts described in the second paper were dropped.

At the point we got the X/MP, CRI's Unicos system ran as a "guest operating system", that is hosted under COS. It was early enough in the Unicos development that the representation of character pointers in code generated by the C compiler changed: in the earliest version, `char *' values were byte-numbers (the byte selection bits were the low-order bits in the pointer); the later version used the word address as the least significant bits as is natural for the hardware, and put the byte specifier as the most significant three bits in the 64-bit word. The first representation made arithmetic on character pointers just arithmetic; the second made accessing characters just a bit faster.

Read Experience with Unicos on the Cray X-MP in various forms:

The second paper is about work done after we had switched from COS, using Unicos as a guest operating system, to native Unicos as the master of the machine. For local operating system fiddlers, this was a step back, though a necessary one.

The work described here didn't go anywhere, but it was fun to do.

Read A Guest Facility for Unicos in various forms:

September 2000