Cool/Weird Stuff To Do On a Cluster?
Gori writes "I'm a researcher at a university. Our group mainly does Agent Based Modeling of interdisciplinary problems (think massive simulations where technology, policy, and economics meet). Recently, we managed to get a bunch of money for a High Performance Cluster to run our stuff on. The code is mostly written in Java. Our IT support people are very capable of setting up a stable cluster that will run Java perfectly. But where's the fun in that? What I'm trying to figure out are other, more far-out and interesting things to do with this machine — think 500+ Opteron cores, 2 GB RAM per core, a gigabit interconnect with some badass switches, a massive storage array, plus a bunch of UltraSPARC boxes. So at times when there's no stuff to crunch, I'd like to boot the thing up with a 'weird' system image and geek around in the name of science. Try fancy ways of building models, dynamically adding all sorts of hardware to it, etc. Have different schedulers compete for resources. Imagine a Matlab vs. Boinc vs. ProActive shootout. Maybe run plan9 on it? Most of us are not CE/CS people, but we are geeky enough. So, what would be the coolest and most far out thing you would do with this kind of hardware ?"
Far, far longer than that. Even if we assume only 1 bit per pixel, 255x255=65025 bits. So each bitmap is basically just a number, 65025 bits long, and you want all permutations of them. So the problem of generating the bitmaps devolves into "count from 0 to 2^65025".
Of course, 2^65025 is a very, very big number. How long would it take to count that high? Assume you can magically do the increment in one cycle, and you have super-unbelievably fast 4GHz processors with absolutely no overhead and perfect scalability. You also do no processing on the image whatsoever, you simply iterate through them. So each core is processing a phenomenal 4 billion images every second. You have 500 cores, so you're chewing through a grand total of 2 trillion images a second. Wow, that's pretty damned fast!
2 trillion is almost 2^41. So if you're getting through 2^41 images every second, that means it will take a mere... 2^65025 / 2^41 = 2^1586 seconds.
There are roughly 2^25 seconds in a year, so that means you're going to be able to complete this count in a mere 2^63 years. That's 9 billion billion years, much longer than the lifespan of the universe. And that's merely to iterate through the images with no processing whatsover. Increase the computing power by a factor of a billion, and it would still take 9 billion years just to count them.
ZFS: because love is never having to say fsck