Why would someone build their own Beowulf cluster — a high-performance parallel computing prototype — using 12 Raspberry Pi boards? It’s using the standard Beowulf cluster architecture found in about 88% of the world’s largest parallel computing systems, with an MPI (Message Passing Interface) system that distributes the load over all the nodes.
Matt Trask, a long-time computer engineer now completing his undergraduate degree at Florida Atlantic University, explains how it grew out of his work on “virtual mainframes”:
In the world of parallel supercomputers (branded ‘high-performance computing’, or HPC), system manufacturers are motivated to sell their HPC products to industry, but industry has pushed back due to what they call the “Ninja Gap”. MPI programming is hard. It is usually not learned until the programmer is in grad school at the earliest, and given that it takes a couple of years to achieve mastery of any particular discipline, most of the proficient MPI programmers are PhDs. And this, is the Ninja Gap — industry understands that the academic system cannot and will not be able to generate enough ‘ninjas’ to meet the needs of industry if industry were to adopt HPC technology.
As part of my research into parallel computing systems, I have studied the process of learning to program with MPI and have found that almost all current practitioners are self-taught, coming from disciplines other than computer science. Actual undergraduate CS programs rarely offer MPI programming. Thus my motivation for building a low-cost cluster system with Raspberry Pis, in order to drive down the entry-level costs. This parallel computing system, with a cost of under $1000, could be deployed at any college or community college rather than just at elite research institutions, as is done [for parallel computing systems] today.
The system is entirely open source, using only standard Raspberry Pi 3B+ boards and Raspbian Linux. The version of MPI that is used is called MPICH, another open-source technology that is readily available.
But there’s an added visual flourish, explains long-time Slashdot reader iamacat. “To visualize computing, each node is equipped with a servo motor to position itself according to its current load — lying flat when fully idle, standing up 90 degrees when fully utilized.”
Its data comes from the /proc filesystem, and the necessary hinges for this prototype were all generated with a 3D printer. “The first lesson is to use CNC’d aluminum for the motor housings instead of 3D-printed plastic,” writes Trask. “We’ve seen some minor distortion of the printed plastic from the heat generated in the servos.”