[Sprite_tm] sent in his latest project. It’s a cluster built from hacked Acer WT-300 windows CE terminals. The resulting speed wasn’t too impressive (10 200Mhz Geode cpus) but the road to get it done is interesting. He had to whip up a flash programmer to get the device to boot from ide devices. Then he added IDE headers and IDE Cf adapters.
7 thoughts on “WT-300 Cluster”
Leave a Reply
Please be kind and respectful to help make the comments section excellent. (Comment Policy)
FIRST POST
and thats actually pretty damn cool,
/me makes mental note to try it myself one day soon
Erm..geode..small but stable and powerful..i like it :-) nice hack though..
Results like his are very common, and have always held me back from really dedicating any time to a serious cluster. The fact is, you are never going to outperform a modern CPU with enough smaller CPUs that add up to the same clockspeed, it just doesn’t work that way.
Not to say there aren’t tasks such a cluster could perform well. They would do well in any task that could be broken up into completely separate tasks rather than portions of one large one. Something like SETI/Folding@home. Or perhaps converting audio/video files. If each node can do it’s job independently without having to report back to a main server every few seconds to combine it’s work unit with the work units of the others nodes, it would be much better all around.
But if you want a cluster to even match the performance of a single modern CPU, then you are going to need much more powerful nodes. I would say at least 1 Ghz.
Of course, as he says, this is a learning experience; and I am sure we have all done pretty useless projects just for the sake of doing it outselves. So I certainly can’t hold it against him.
Always cool! But I agree with TJ… the unfortunate truth is that you need a bit more powerful systems to make clustering really cost/time effective. Really the point of HPC arrangements isn’t to cheaply have a lot of processor power (though that is ALWAYS nice) it is to have far more power than any one or two modern processors could create.
That said, those little acer things look neat! They seem like they would be perfect for like a DIY NAT box or something. Or as cheap terminals for accessing data. Take one of these, combine it with a $100 LCD and you’ve got a very nice kitchen-puter or something.
There are two types of clusters.
The first are true parallel clusters. The idea here is to accomplish one task faster by using many CPUs. This is really hard since to do this the processors generally need to exchange data very quickly (even gigabit ethernet isn’t going to cut it) and a lot of work must be done in the program to make this practical even with tasks that have a large amount of inherent parallelism. There is no OS, programing language or toolkit where it automatically makes a task parallel with any real degree of success. A good example of such a task one would use this type of cluster on is diagonalizing a very large matrix in quantum mechanical simulations. Even here the performance doesn’t scale linearly with more processors since communication overheard complicates matters.
The second type is the concurrent type, or dumb parallelism type. These clusters run one job per CPU but run a lot of individual jobs at once. Rarely (if ever) do the tasks run on these types of clusters need to share information with each other. You program these are if you were going to run it on a single processor machine, and let the OS or cluster toolkit handle where the code actually executes. A good example of this type of task is calculating a pressure density curve for a classical molecular dynamics simulation. You run one job for each density, then take the resulting pressures and plot them. If you do this right, performance can scale almost linearly.
Basically you use MPI (message passing interface) or UPC (unified parallel C) with the 1st type and regular C with OpenMosix on the second type. The article doesn’t mention exactly what type of clustering software he uses, but considering he is using a Debian variant, my guess is OpenMosix. Basically a distributed kernel compile requires the 1st type of cluster so his benchmark is somewhat off.
Well his original point was just to make one usefull, and during that process decided to attempt the cluster. Yeah, as a cluster it is almost useless other than the learning experience. However, as an individual machine, a lot of work went into getting a single machine to be bendable to your will. The machine would be a great remote data collection system, or a weather station, or a robot controller, or a home automation computer, or whatever. Getting 10 machines to work together is really just icing.
I don’t know what the hell you’re talking about, but that was one good read.
I’m really more of a hardware hacker, but I kinda sorta kept up.
Neat stuff!