Build Supercomputer with Arduino

Someone already built Basic Stamp Supercomputer. I am wondering if we can build supercomputer with Arduino. There is more information on basic stamp supercomputer.


yea I guess one could, there are quite a few examples of "multicore" arduinos, that communicate to each other via a bus and do separate tasks

personally if I were to go nutty, I would aim for a mcu that can address external memory

I think it’s a stretch to call it a ‘super computer’, as it’s more of a network of controllers, one master and 11 or 12 slaves using a one-wire interface.

Certainly much fewer Arduino boards could do much better in the way of performance and price. The Stamp was a nice offering 20 years ago but technology has certainly passed it by. Only their propeller board has kept up with the times, but it’s not a stamp derivative as it uses a different language and processor then the stamp series of boards.


The question isn’t so much can it be done (which it fairly easily could, especially if you used SPI for the interconnect), but more of “why”?

When building a parallel, multi-processor system, you have to have a reason and a need. For the likely power requirements of such a system for processing anything useful, you would probably get better bang for the buck via a normal multi-core PC system.

I’ve often considered designing (once I got up my skills on GEDA software) a “motherboard” that would hold a “ton” of the SMT ATMega328s communicating via SPI with a master, perhaps stacked 3 high with spacers in a 1U cabinet (maybe the boards could be double sided?), connected to the outside world via an ethernet interface; but still the question would be “why” or “what for”.

Just to say I did it for a small blurb on the net doesn’t motivate me.

Now - perhaps if they could be arranged in some fashion where every ATMega is connected to its neighbors - hmm, then things could get interesting. Perhaps a form of a neural net, or a version of Conway’s Life (give each processor an RGB LED)…?

Even so - such a system would likely not be very cheap to build, and I don’t know if you could sell one or not.

I think actually, that a better system might be a shield that added extra ATMega328s to an Arduino - the shield wouldn’t have to be a full Arduino, but the extra processors could perhaps be used to offload certain code and processing…


“There are those who look at things the way they are, and ask why... I dream of things that never were, and ask why not?”

You don't need a reason, cr0sh.

In the 70's, ICL built a SIMD multiprocessor called the DAP - it had 4096 1 bit (yes, you read that right) processors, each with 4096 bits of storage. It outperformed Crays of the time on some benchmarks by very large margins. It was a complete bugger to program.

MIMDs are a much easier to understand, but not much easier to program [u]well[/u].

As has been pointed out, hooking a bunch of microcontrollers together does not a supercomputer make.

You don't need a reason, cr0sh.

In a world with unlimited resources, perhaps not. We don't live in that world.

I already know that you can gang up a bunch of processors in one configuration or another and create something that may be useful for certain problems and be greater than the sum of its parts. Its another example of the power of a network, nothing more.

When I have to balance the amount of time I may have left on this planet, with a life, a family, a job, and a mortgage (among a myriad of other things), I have to prioritize and decide what I can do with whatever free time I have left over. Doing something to do it (and we aren't talking about things that never existed, either - parallel processing multi-cpu networks are old hat) does nothing but waste time and money.

However, if there is a need (or even a perceived need) for such a system; a reason to build it and use it - then it may be worth going ahead and building it - whatever "it" is. I simply can't think of a reason or need for a multiple microcontroller parallel processing "super"-computer, and I have yet to find somebody who could articulate such a need or reason to me, that would justify the time and expense of creating it. I am not saying that such a need or reason doesn't exist, but I have yet to find or hear of it.

Its one reason why I haven't built my own clustering system. I am certain I could do it, I am certain I could afford it (to a certain level, of course - I'm not rich by any means), but I have yet to figure out exactly what to do with such a machine aside from having it calculate Mandelbrot/Julia set iterations, or perhaps run a massive Game of Life, or maybe some kind of a-life simulation, neural networking, or ray tracing. All of these, while interesting, are not enough of a reason or need for me to spend my limited time or money to build such a cluster (for one, if I wanted to do any of these, I would already be doing them on a standard multi-core machine - since I am not, at least not currently, it certainly doesn't make sense to build a cluster to do them).

Other's might have a reason, or a need; for regular clusters, I can recognize and see that there are a lot of useful reasons and needs to build them, and if those are your pursuits, then they should be pursued. As I have said, though, I have yet to find a good reason or need for building such a machine (at least to the level of what an average person could do - as I noted, I have contemplated the idea of a massively parallel collection of ATMegas - but I couldn't afford to build it, at least personally). I would more than welcome a reason or need.

Building something without one is a sure-fire way to financial ruin; I suppose that is why the stereotype of the "starving artist" exists...


It's funny, but I'd already decided my reply was going to be "If I can't find a reason for it I just call it art" before I got to your last line :D

Does it actually do anything other than display the "cores" or computers that are online? It looks nice but I am not seeing it actually do anything?