Hacker News new | ask | show | jobs
by rwmj 2001 days ago
One dream project I have is to build a CM-5 like machine from hundreds of cheap units like this. Unfortunately this one seems to lack fast I/O. Could probably do something with the I2C connections but they would be very slow.

(Before anyone jumps in with "why don't you use a desktop machine, it'll be faster", this is for fun, not a practical project.)

7 comments

It apparently supports SDIO 2.0[1] and with that apparently WiFi/Ethernet. I assume one would have to add SPI Flash and boot off that.

Though yeah, I doubt it would be very fast regardless, but it's something.

edit: I assume you're aware of the OTG port.

[1]: https://linux-sunxi.org/F1C100s (datasheet)

The board already has spi flash but it’s only 8 or 16mb. Enough for buildroot or maybe openwrt but Debian ain’t going to fit in there.
Not Debian, but there are lots of Linux distros pared down to fit on a single floppy disk. They will run just fine within that amount of RAM.

https://web.archive.org/web/20161109230651/https://bengross....

I’m not sure what transfer rates you’re looking for but modern SPI slaves can do > 120 MHz (roughly 15 MB/sec); if you give it two more pins you can do 66 MB/s (bytes, not bits) via quad spi (cf the datasheet for this very run-of-the-mill NOR flash that can do SPI, Dual SPI, and Quad SPI [0]). Of course that’s a unidirectional transfer rate - you won’t be able to simultaneously both send and receive at that rate, but you can alternate symmetrically between the two.

You won’t be able to bitbang at those speeds, so you’ll definitely have to drop down a layer in your stack/abstractions but since you mentioned I2C I figured you’d probably be OK considering this.

[0]: https://www.winbond.com/resource-files/W25Q128JW_DTR%20RevD%...

OrangePi zero is pretty cheap (at around the $10 mark), has 256MB RAM, 4x 1.2GHz cores, microsd slot and 100M ethernet/built-in wifi.

I have one I used to build a security cam system. Pretty neat little board.

The bigger brother, so to speak, the LicheePi Zero apparently has 100M Ethernet PHY included[1].

It's about twice the price though, at least from the brief look[2] I had.

[1]: https://licheepizero.us/licheepi-zero-hardware-data

[2]: https://www.aliexpress.com/item/4001007403603.html

I wonder if there's a sweet spot of price and speed (1-4gb ram units?) where such a device would actually be competitive on performance and price.
Communication overhead is the enemy of these highly parallel machines. The Connection Machines had many CPUs, but the unsung hero was the hypercube of connections between them [the clue is in the name]. According to Wikipedia it was a 12 dimension hypercube so every node had 12 high speed point-to-point I/O channels to adjacent nodes, which must have been a nightmare to implement and a nightmare to design software for. The cost of a CM-5 (Wikipedia again says $25 million) must have mostly been for this very specialised network.

It's hard to imagine this could have been competitive with a $25 million pile of beige PC boxes from the same era, but the PCs would have been starved of I/O (10 Mbps shared thick ethernet anyone?) so only applications which don't need much I/O between the nodes would be possible.

A "modern" CM-5 would ironically look much more like the pile of beige PCs, because it will have much less I/O -- these cheap chips only seem to have at most one or two fast channels (eg. ethernet and SDIO). There's no way to build these into a hypercube. It will be constantly limited by bandwidth and contention addressing other nodes in the cluster.

So I'd only build it for fun, not for practicality :-)

SpiNNaker[0] is a species of that, with multi-dimensional connections in a toroidal surface configuration. It's ARM-based, largely because the chief developer/project head is Steve Furber. Along with interviews concerning the BBC Micro and ARM, Computerphile did a video with Furber concerning SPiNNaker[1].

[0] https://en.wikipedia.org/wiki/SpiNNaker [1] https://www.youtube.com/watch?v=2e06C-yUwlc

Yes SpiNNaker looks very cool, also of course the BBC Micro connection as you say. I do wonder what the network architecture is, so now I'm going to have to watch that video you posted :-)

Edit: It's a toroid, which seems an unusual choice (because 2D) for something that's meant to simulate a brain. I wonder if a simple 3D cubic connection network would have been possible by adding more links between physically adjacent boards.

I'm surprised it was worthwhile to build, since the whole thing has only 7TB of ram. I guess the total memory bandwidth is really good.
I've noticed that a lot of those small arm chips are designed for external ram. I wonder if physically shared ram could overcome the I/O limitation.
There are some pretty nice cluster cases out there. This one that fits 7 of the SOPINE compute module[1] using their clusterboard[2] is neat: https://www.c4labs.com/product/presale-pine64-cluster-case-p...

[1] https://www.pine64.org/sopine/

[2] https://www.pine64.org/clusterboard/

I have the Turing Pi 1, 7 RPi CM3 nodes. And it's fine. But next I want to really move to a "huge" cluster, say 100+ nodes.

The reason is that with 7 nodes I find I'm still logging into each Raspberry Pi and configuring it by hand. It's a bad habit for sure. With 100 nodes, there's no way I could possibly do that, forcing me to write software to control the nodes automatically.

Wait, this is also my dream!

Mine is more about using FPGAs for the communication fabric and RISC-V for processing, but similar.