This week I learned that PINE64 (the company who makes the boards used in Mark II) released a new piece of hardware that could accelerate my work on RAIN PSC considerably. The PINE64 Cluster Board combines a gigabit Ethernet switch with seven SODIMM slots (along with the associated support components) into a single mini-itx sized circuit board. The SODIMM slots are designed to hold SOPINE modules which incorporate the essential components of the same single-board computer I’m using in RAIN Mark II. The result is a very compact 7-node cluster.
So what does this have to do with RAIN?
Much of my work on RAIN so far has been focused on cramming 8 full-sized PINE64 boards into a box. The cluster board, while not as flexible as my own designs solves this problem much faster and more compactly than I can. The board doesn’t scale the way my 3d printed design does, but that’s not a problem for the Mark II PSC. The existence of this cluster board also makes the idea of exploring the SODIMM compute module form-factor more compelling. This is something I had originally considered, but didn’t explore initially because I knew it required working with components and materials that would slow me down at this stage. With something like the cluster board available, I could design other modules based on that form factor (RISC-V compute, FPGA application-specific logic, etc.) without having to take-on the big-bite of designing the entire system, fabbing large boards, etc. Another exciting aspect of the existence of this board is that there are others working on the low-level details of running a cluster based on it. The SOPINE has 128MB of on-board flash which makes for a very slick netboot configuration. There’s already a working implementations of network booting the nodes on this board which means there might be one less thing for me to do on the software side of things. Finally (and to me most importantly), the design (like all other PINE64 designs) is open-source hardware. This means that if PINE64 decides to abandon it, I can still continue to use it. This also means that I can improve or expand the design as necessary.
I’ve placed an order for one of these cluster boards as well as one SOPINE module. My plan is to see how the cluster board physically fits into the current PSC case (given the mini-itx form-factor, I think it will work). Assuming the cluster board fits, my plan is to pair it with a single full-size PINE64 board which will serve as the front-end node and optionally provide a terminal interface (HDMI video, USB keyboard & mouse) to preserve the stand-along capability of the PSC. This will however necessitate a change to the way the control panel works since fewer GPIO’s are exposed for each SOPINE module. I’ve already begun working on an I2C implementation of the LED’s and toggle switch inputs. While I’m waiting for the cluster board to arrive, I’ll be focused on prototyping this interface change as well as coming up with a working Linux build for the front-end node that can be used to netboot the SOPINE module(s) on the cluster board. All of these changes (if successful) will allow me to move much more quickly into working on the software side of Mark II, so I’m very excited to see how these next steps pan-out.