Running Cray OS And UNICOS On Your Own Cray Simulator Instance

Cray X-MP serial number 302 being assembled (Credit: Andy Gelme)

The Cray series of super computers have been pretty much symbolic for high-powered computing since the 1970s, and to this day there’s a certain level of mysticism to them. Much of this is also helped by how rare these systems were and are today. Unlike Commodore, Apple and IBM PC systems which got sold by the truckload, Cray super computers and the much smaller workstation systems were and are significantly more rare. Despite or perhaps because of this [Andras Tantos] embarked on a decade-long quest to bring together what is left of the Cray legacy in the form of the Cray Files.

Part of this is a Cray system simulator that can be found on GitHub as well as online. This simulator allows you to run software written for the Cray X-MP (1982), Y-MP (1988), J90 (1994) and SV1 (1998), which covers essentially all major Cray systems after the Cray 1 and up till when Cray had become part of SGI in 1996. Described in the blog is the extensive archaeological work [Andras] had to undertake to unearth and resurrect these systems. Along the way he got a few lucky breaks, such as when finding two UNICOS CD images on Archive.org, and when people who used to work with Cray systems still had software and such lying around, along with the treasure trove of knowledge contained in their memories.

Although these Cray computer systems are as solidly obsolete as SGI and Sun’s once high-end systems of the 1990s are today, very few would have gotten a chance to use any of those systems, which makes it even more important that they are preserved. As an ongoing project, [Andras] is asking for anyone who might be able to fill in some of the remaining blanks to contact him.

[Heading photo: Cray X-MP serial number 302 being assembled (Credit: Andy Gelme)]

32 thoughts on “Running Cray OS And UNICOS On Your Own Cray Simulator Instance

    1. The older Cray-1 machines used a Data General 16-bit minicomputer for booting (loading the Cray OS system image into the main memory and starting it) … or running engineering maintenance diagnostics. The very first Cray-1 (serial #1) had all code compiled on a CDC Cyber 7600 (similar instruction set … it was also a Seymour Cray design, but without vectors) and then loaded into main memory and run (there may not have been complete Cray operating system when the first machine was delivered) … until the Cray Operating System (COS) matured.
      The Cray-X/MP and later models did use a Sun 3 workstation (and newer Sun models) for the same purpose. The Cray-1S, 1M and X/MP included I/O Processors (IOPs) which had their own operating system and serial terminals (like VT-100s, but probably Ampex), which the Sun workstation replaced by simply using X11 client windows (similar to “xterm”).
      At the time, it was a wild idea to me that an expensive and generally useful workstation … was used for just a brief time to boot and operate the Cray. On the upside, it did mean that during quiet time, there was a “free” workstation to learn Unix, SunOS and X11 programming on … or running Mandelbrot sets, which were “new” back then :)
      For the Cray-X/MP emulator you don’t need to also emulate the front-end minicomputer (or workstation), because you can simply load the Cray I/O Processors and main CPU operating system images directly into the emulated memory !
      In the very early days, Cray Research used their own emulator for software development, because access to real hardware wasn’t readily available.

    1. To add to this, the Chippewa Falls Museum of Industry and Technology had a pretty shockingly large amount of Cray stuff as well. (www.cfmit.org). Don’t believe anything was functioning but if I recall there were some cabinets stuffed with binders that may have been usable documentation.

  1. Which model Cray was used to render the CGI in “The Last Starfighter”? Would an emulator on a current PC run fast enough to do that same rendering? Faster than the real Cray?

    1. The GPU in my cell phone, which is 4 years old now, can reach 712 GFLOPS. The Cray X-MP could reach 800 MFLOPS. Granted, the cray was 64-bit and the GPU is 32-bit, so it’s not directly comparable. My phone’s CPU is apparently only ~133 MFLOPS, so it wouldn’t be able to keep up.

    1. I still have that original Opus from the photograph sitting on the bookshelf in my office.
      That Opus traveled the world many times and visited many Cray installations.
      Another Cray engineer has Bill The Cat (who always behaved disgracefully).

      1. Opus from the popular Bloom County comic strip … https://en.wikipedia.org/wiki/Opus_the_Penguin … that stuffed penguin was the mascot for the first Cray supercomputer in Australa. Both system were located in Melbourne, Australia during the mid-to-late 1980s. Serial 302 pictured in this article is now located in storage at the ScienceWorks museum in Melbourne. The other Cray supercomputer is now located in the foyer of a government building in Canberra, Australia (detailed story and images can be found, publicly on the Internet).

  2. There is a story, possibly apocryphal, that Steve Jobs once visited Seymour Cray. “I used a Cray to help design the next Mac,” he gushed. Cray replied, “Interesting, I used a Mac to help design the next Cray.”

    1. Jobs designed interfaces/packaging, not computers, and designing Macintosh interfaces/packaging didn’t require a supercomputer.

      I can’t understand how one would use a ‘supercomputer’ to design a desktop computer – it’s not like there were CAD packages, PCB trace layout, or circuit simulation packages available to run on a Cray supercomputer back in the day…

      1. “it’s not like there were CAD packages, PCB trace layout, or circuit simulation packages available”

        “magic vlsi design” ran on all the old school unixes, including cray.
        Pretty sure Cadence was around back then too
        Any C code you could compile against X11 would be available as well. I can’t remember specific names of unix cad packages in the 90s but there were many.

    2. That story existed back-in-the-day, but impossible now to verify if the conversation occurred (likely not, sadly).
      What is true is that Apple did have a Cray-X/MP which ran MoldFlow (created by a company in Melbourne, Australia … bought by AutoDesk in 2008) for injection molding simulation for Macintosh cases. I also heard that the Cray was used to emulate (some amount of) the Macintosh, including mouse and display output for visual display development, but don’t recall details.
      What is also true is that Cray Computer Corporation, spun off from Cray Research Inc to develop the Cray-3 and Cray-4, did use Macintosh II for designing those Cray systems.

  3. Maybe this could lead to a Controll Data 7600 emulator? Or maybe even a PDP11-40 emulator? These emulators would have a good chance of running faster than the original machines.

    1. The CDC 7600 was Seymour Cray’s design prior to the Cray-1 (not counting the CDC 8600, which wasn’t completed). The CDC 7600 had a 15-bit instruction set (4 instructions per 60-bit memory word), which are reminiscent of the Cray-1’s instruction set. However, the Cray-1 had a 16-bit instruction set (4 instructions per 64-bit memory work). At the time, the joke was that the Cray-1 was like a CDC 7600, but with an extra instruction bit for the vector registers.
      However, there are sufficient differences in the instruction set, registers (A, B, S, T and V), floating point units (especially the floating-point multiply and reciprocal divide pipelines), 3 read / 1 write channel to main memory per CPU every clock cycle, I/O channels and more … that it would be a significant effort required to rework the Cray-X/MP emulator to also provide CDC 7600 emulation.
      The other challenge would be getting your hands on CDC 7600 software or binary images to run, especially compilers, assemblers, linker and libraries. A copy of the CDC NOS operating system would also be nice.
      IIRC back-in-the-day, the Cray Research in-house emulator ran (maybe) 70 times slower than the actual hardware … in part, because software emulation is slower than real hardware … and 1970s/1980s hardware wasn’t fast compared to now. An emulator for any vintage system running on modern hardware will go much faster than the original … and need to be artificially slowed down to be historically accurate. An original Cray-1 could perform around 160 MFlop/s for chained vector add and multiply … whereas a modern mid-range laptop with an nVidia RTX3060 GPU can perform more than 6 TFlop/s (a 37,500 times speed improvement).

  4. Article correction: I’m pretty sure that the operating system images used by Andras for his Cray-X/MP emulator are Cray Operating System (COS 1.17) images, which was the original Cray Research Inc proprietary (batch) operating system (not surprisingly influenced by the CDC NOS operating system … more than a few CDC employees moved upstream from St Paul to join Cray Research in Mendota Heights).
    UNICOS was Cray Research’s port of Unix (System V), initially for the Cray-2 (which had a staggering amount of main memory for the time) and later on the Cray-X/MP and Cray-Y/MP systems (much less main memory than a Cray-2).
    One of the challenges with porting Unix to the Cray systems, was that Unix and C depended heavily on byte / character processing (8-bits), whereas the Cray instruction set really only dealt efficiently with 64-bits words (requiring several instructions to extract or put back an 8-bit character into a 64-bit word).
    Sure for block memory moves performed with 64-bit words, the Cray was crazy fast. I’m pretty sure that TCP “slow start congestion handling” was implemented to handle the speed at which Cray systems pushed data onto the network (https://dl.acm.org/doi/pdf/10.1145/378444.378446).

    Anyway, I’m always amazed that a Cray Operating System image that I built over 33 years ago … on a Cray-X/MP (serial 302) … from source code onto an 80 MB disk pack … is still running (under emulation) today and being discussed.

    1. Oops … I have to take that back. All Andras’ original efforts were with the COS 1.17 image … and later on he found the UNICOS images (much more familiar for a modern audience). Apologies … I’ll try to keep up next time !

  5. I got to tour the CalTech/JPL T3D system circa 1995. Ran a SUN box of some flavor under a guy’s desk for scheduling and monitoring. They had the largest tape library I’ve seen in my life, I’m guessing to handle the dozen or so cabinets of attached storage. I remember cool displays on the front of the main cabinets, because if you’re already spending that much money why not make it look cool too…and the main forum for the users had a lot of Fortran chat. At the time I think they only had 1024 PEs installed but had cabinet space to double that. Very cool that people still play with these things. There’s a PDP 11/70 in a friend’s basement I’ve always wanted to get running but it’s naked for software so I guess I’ll have to see if there’s emulation out there for that…

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.