Cluster Your Pi Zeros In Style With 3D Printed Cray-1

From a performance standpoint we know building a homebrew Raspberry Pi cluster doesn’t make a lot of sense, as even a fairly run of the mill desktop x86 machine is sure to run circles around it. That said, there’s an argument to be made that rigging up a dozen little Linux boards gives you a compact and affordable playground to experiment with things like parallel computing and load balancing. Is it a perfect argument? Not really. But if you’re anything like us, the whole thing starts making a lot more sense when you realize your cluster of Pi Zeros can be built to look like the iconic Cray-1 supercomputer.

This clever 3D printed enclosure comes from [Kevin McAleer], who says he was looking to learn more about deploying software using Ansible, Docker, Flask, and other modern frameworks with fancy sounding names. After somehow managing to purchase a dozen Raspberry Pi Zero 2s, he needed a way to keep them all in a tidy package. Beyond looking fantastically cool, the symmetrical design of the Cray-1 allowed him to design his miniature version in such a way that each individual wedge is made up of the same identical  set of 3D printed parts.

In the video after the break, [Kevin] explains some of the variations the design went through. We appreciate his initial goal of making it so you didn’t need any additional hardware to assemble the thing, but in the end you’ll need to pick up some M2.5 standoffs and matching screws if you want to build one yourself. We particularly like how you can hide all the USB power cables inside the lower “cushion” area with the help of some 90-degree cables, leaving the center core open.

This isn’t the first time we’ve seen somebody build their own tiny Cray-1. A particularly dedicated hacker built his own 1/10th scale replica of the 1970s supercomputer powered by an FPGA back in 2010, and eventually got to the point of trying to boot original software on it.

Continue reading “Cluster Your Pi Zeros In Style With 3D Printed Cray-1”

Help [Chris] Boot His Cray-1 Supercomputer

[Chris Fenton] needs your help. After constructing a 1/10th scale, cycle accurate Cray-1 supercomputer and finding a disk with Cray software on it, he’s ready to start loading the OS. There’s a small problem, though: no one knows how to boot the thing.

[Chris] posted a disk image for a Cray-1/X-MP with the help of the people at archive.org. Now he needs your help – if you think you can reverse engineer the file system, [Chris] will pay handsomely with a miniature model of a Cray printed on his MakerBot. In any case, it seems like a fun challenge.

From our quick glance at the disk image with a HEX editor, it looks like [Chris] has something special on his hands. We see a few references to “Cray memory and registers,” as well as “IOP-0 Kernel, Version 4.2.2” in the header along with a few dates referencing July of 1989.  This is consistent with the history of the source disk pack. If you think you’ve got what it takes to reverse engineer the file system of a Cray-1, this is your chance.

Tiny Cray-1 Courtesy Of An FPGA

[Chris Fenton] spent a year and a half constructing a 1/10th scale Cray-1 reproduction. The famous supercomputer was meticulously modelled in a field programmable gate array for a “nearly cycle-accurate” reproduction. [Chris’] hardware of choice for the project is a Xilinx Spartan-3E 1600 development board, using 75-80% of the available resources. The finished product runs at 33 MHz and is missing a few functions but it sounds like they don’t affect code execution. We like that he didn’t stop with the processor implementation, but also took the time to produce a case for the development board that looks just like the original.

Unlike the Atari 2600 FPGA project, we’re not quite sure what we’d use this for. But that doesn’t diminish the excellence of his work.

A History Of NASA Supercomputers, Among Others

The History Guy on YouTube has posted an interesting video on the history of the supercomputer, with a specific focus on their use by NASA for the implementation of computational fluid dynamics (CFD) models of aeronautical assemblies.

The aero designers of the day were quickly finding out the limitations of the wind tunnel testing approach, especially for so-called transonic flow conditions. This occurs when an object moving through a fluid (like air can be modeled) produces regions of supersonic flow mixed in with subsonic flow and makes for additional drag scenarios. This severely impacts aircraft performance. Not accounting for these effects is not an option, hence the great industry interest in CFD modeling. But the equations for which (usually based around the Navier-Stokes system) are non-linear, and extremely computationally intensive.

Obviously, a certain Mr. Cray is a prominent player in this story, who, as the story goes, exhausted the financial tolerance of his employer, CDC, and subsequently formed Cray Research Inc, and the rest is (an interesting) history. Many Cray machines were instrumental in the development of the space program, and now adorn computing museums the world over. You simply haven’t lived until you’ve sipped your weak lemon drink whilst sitting on the ‘bench’ around an early Cray machine.

You see, supercomputers are a different beast from those machines mere mortals have access to, or at least the earlier ones were. The focus is on pure performance, ideally for floating-point computation, with cost far less of a concern, than getting to the next computational milestone. The Cray-1 for example, is a 64-bit machine capable of 80 MIPS scalar performance (whilst eating over 100 kW of juice), and some very limited parallel processing ability.

While this was immensely faster than anything else available at the time, the modern approach to supercomputing is less about fancy processor design and more about the massive use of parallelism of existing chips with lots of local fast storage mixed in. Every hacker out there should experience these old machines if they can, because the tricks they used and the lengths the designers went to get squeeze out every ounce of processing grunt, can be a real eye-opener.

Want to see what happens when you really push out the boat and use the whole wafer for parallel computation? Checkout the Cerberus. If your needs are somewhat less, but dabbling in parallel computing gets you all pumped, you could build a small array out of Pine64s. Finally, the story wouldn’t be complete without talking about the life and sad early demise of Seymour Cray.
Continue reading “A History Of NASA Supercomputers, Among Others”

PicoCray - Raspberry Pi Pico Cluster

Parallel Computing On The PicoCray RP2040 Cluster

[ExtremeElectronics] cleverly demonstrates that if one Raspberry Pi Pico is good, then nine must be awesome.  The PicoCray project connects multiple Raspberry Pi Pico microcontroller modules into a parallel architecture leveraging an I2C bus to communicate between nodes.

The same PicoCray code runs on all nodes, but a grounded pin on one of the Pico modules indicates that it is to operate as the controller node.  All of the remaining nodes operate as processor nodes.  Each processor node implements a random back-off technique to request an address from the controller on the shared bus. After waiting a random amount of time, a processor will check if the bus is being used.  If the bus is in use, the processor will go back to waiting.  If the bus is not in use, the processor can request an address from the controller.

Once a processor node has an address, it can be sent tasks from the controller node.  In the example application, these tasks involve computing elements of the Mandelbrot Set. The particular elements to be computed in a given task are allocated by the controller node which then later collects the results from each processor node and aggregates the results for display.

The name for this project is inspired by Seymore Cray. Our Father of the Supercomputer biography tells his story including why the Cray-1 Supercomputer was referred to as “the world’s most expensive loveseat.” For even more Cray-1 inspiration, check out this Raspberry Pi Zero Cluster.

PicoCat, printed in yellow filament, looking at you with its ultrasonic sensor eyes

Build Your Own Cat – Some Assembly Required

Robotic pets are sci-fi material, and [Kevin McAleer] from [Kev’s Robots] is moving us all ever so closer towards a brighter, happier, more robotic future. One of his latest robot builds, PicoCat, is a robot cat with servo-driven paws. It follows in the footsteps of the OpenCat project made by Dr. Rongzhong Li back in 2016, and we’re always happy seeing someone pick up where another hacker left off. [Kevin] took heavy inspiration from the OpenCat design – rebuilding it with hardware more friendly and accessible for makers today.

Projects like these, involving data processing and calculations to get the servos moving just right, stand to benefit from the computing power of recently released RP2040 MCU. As such, the Pimoroni Servo 2040 board is a crucial component of this build, being both the brains of the project and also a PIO-boosted driver for the eleven servos helping this robot come alive. This cat’s eyes are an ultrasonic sensor, and you can add a whole lot more sensors for any robotic intention of yours. Don’t expect this kitty to jump one meter high or scratch your favourite couch to death just yet, but there’s already a lot of potential, especially coupled with a small speaker.

A PicoCat with a non-robotic kitten in the backgroundDoes this robotic cat interest you, whether it’d be due to your sci-fi propensity or a cat hair allergy? You’re in luck, because [Kevin] is keeping things firmly in the “open-source everything” realm. MicroPython code is stored in a GitHub repo, STLs are in a .zip linked on the page, and there’s plenty of renders to never leave you confused on what goes where. With all these resources, you can source the servos and the boards, fire up your 3D printer and sit down to assemble your own PicoCat. But not just that, [Kevin] also recorded three whole streams with insights, giving us over four hours of how-it-came-to-be video material for us to learn from. First, two streams of him designing the PicoCat in Fusion360, and then, him talking about the way he creates unit tests in MicroPython to improve his robots’ reliability and significantly reduce the amount of bugs cropping up.

This is not the last we will hear from [Kevin]’s robot-filled workshop, and previously, we’ve covered his Cray-1-shaped Pi Zero cluster system and a Raspberry Pi theremin, both as open and reproducible as this kitty! As you assemble yourself a PicoCat, or perhaps a Stanford Pupper or any of the other lovely quadru-pets we’ve previously featured, you might wonder how to properly move the servos, and we’ve covered a project that teaches you specifically that.

Continue reading “Build Your Own Cat – Some Assembly Required”

TTL And CMOS Logic ICs: The Building Blocks Of A Revolution

When starting a new electronics project today, one of the first things that we tend to do is pick the integrated circuits that make up the core of the design. This can be anything from a microcontroller and various controller ICs to a sprinkling of MOSFETs, opamps, and possibly some 7400- or 4000-series logic ICs to tie things together. Yet it hasn’t been that long since this level of high integration and miniaturization was firmly in the realm of science-fiction, with even NORBIT modules seeming futuristic.

Starting with the construction of the first point-contact transistor in 1947 and the bipolar junction transistor (BJT) in 1948 at Bell Labs, the electronics world would soon see the beginning of its biggest transformation to that point. Yet due to the interesting geopolitical circumstances of the 20th century, this led to a fascinating situation of parallel development, blatant copying of designs, and one of the most fascinating stories in technology history on both sides of the Iron Curtain. Continue reading “TTL And CMOS Logic ICs: The Building Blocks Of A Revolution”