I'm not sure if this will be of interesting to anyone, but I did a small project over the holidays to build a small 16/8 CPU SAMD21 based Arduino interfaced board. The goal was to build something that would allow for experimentation with interconnect architectures used in supercomputing. I designed the PCB pretty quickly in Diptrace, sent it off to JLCPCB, and a week later the boards were delivered. To my surprise, they worked great after assembly!
I made a board and platform configuration that works inside the Arduino interface that supports the ability to flash code to all of the processors in one button press, which is convenient. I have a basic message passing system that takes advantage of the interconnects to allow data transfer and a simple form of barrier synchronization.
I used the SAMD21G18s, which have 6 serial ports. That makes it possible to use 4 of the serial ports for node to node communication, one for a connection to the supervisor cpu, and one for external data display. With 16 CPUs and 4 interconnects per node it is easy to build a 4D hypercube interconnect, which has really great and easy navigation properties.
A few pictures attaches, plus I did a small video:
I'm happy to put the code, schematics, etc on github if anyone is interested. It was a pretty fun holiday project, and I enjoyed learning a bit about the board configuration, bootloader operation, and flashing tools for the SAMD Arm Ardunio boards. I have not seen any other 8 or 16 CPU Ardunio projects, although I'm sure there are some out there. Cheers! -Jeff


