Slashdot Mirror


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 ?"

7 of 608 comments (clear)

  1. Re:Super photogenesis by egomaniac · · Score: 5, Informative

    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
  2. It's even worse if you do the maths right. by Anonymous Coward · · Score: 1, Informative

    2^65025 / 2^41 = 2^64984 seconds. Divide by subtracting the index, e.g. 10^3/10^2=10^1

    To divide by 2^25, just subtract 25 from the exponent, giving 2^64959 years, or 10^19555 years. But still much longer than the age of the universe.

  3. Re:Cool/Weird Stuff To Do On a Cluster? by rabidkumquat · · Score: 2, Informative
    --
    under construction
  4. low performance java by kramulous · · Score: 2, Informative

    Because the Java codes I have to optimise to run on our cluster (or SMP machine) still run like lame, wet dogs. I'm sorry, but Java's performance is really, really shitty and I'm considering removing Java and Javac from the systems altogether. When you compare another object oriented language, like C++, at least with that you can write your codes to make use of multiple instructions per cycle ... and then with a good compiler and appropriate hardware, you can vectorize the instructions themselves. When you have codes that for a single processor, would run for about 50.9 years (an example I pulled from just today) those 'simple' little things go a long way. Now where can you tweak that sort of thing in Java? ... Oh, that's right, YOU CAN'T.

    But that's object oriented languages (which is getting better since I'm learning how to make myArray[i] run twice as fast), I prefer to use C and fortran. Those babies are low memory and totally rock. You don't spend all your time making method calls, which chew cycles for each call (let alone being in large nested loops).

    I don't mind punching out Java code; it's extremely good for some tasks, but it is not a language I'd use on a high performance system. Just in my experience. I could be wrong and would love to be proven wrong.

    --
    .
    1. Re:low performance java by kramulous · · Score: 2, Informative

      Ok, so I didn't know that this posting was actually you, and by "Most, if not all people who work here" you were referring to your work colleagues and not /.. I'm slow but I get there in the end.

      Wanna fill your spare cycles? Go to your Mathematics department and have a chat to the post-graduate students in non-linear algebra ... they are a really good start. Tell them you've got a machine available. Next, go see your physicists. The particle physicists and medical guys will definitely keep a machine like that busy with open source software. Another group that can fill cycles are the document searching/classification people in the IT faculty. Are there any medical institutes nearby or affiliated with your university? Every university has an Engineering faculty. How do they get to do large scale simulations? There are some nice open source packages for that as well.

      If you've got Matlab licenses, get to your university's Matlab mail list and advertise your machine for batch submission. People can be slow to adopt this, but once they've done it a few times, they won't do it any other way.

      Make sure you're ready for the extra accounts ... that you can say for every account, how many compute seconds were used. Ask people that if they publish a paper or present at a conference, they acknowledge your group. This makes great ammunition when needing upgrades/replacements.

      Don't keep the machine to yourselves ... share it.

      --
      .
  5. Meanwhile, back to the main article topic by VernonNemitz · · Score: 2, Informative

    Here's some speculative science that might be worthy of modeling: Ionic Kinetic Energy Conversion Effect
    Are there limits to the fact that when a charged particle is accelerated, it emits a photon? I was once told that below a certain point, the charge does not emit a photon. Really? Why? A possibly useful phenomenon needs relevant data! Thanks!

  6. Do Good in the World by pz · · Score: 3, Informative

    A number of other posters have suggested this answer, but I wanted to emphasize it.

    You are lucky enough to have a massive, desirable resource that is underutilized while we are in the midst of an academic funding environment which has been called the worst ever for supporting basic and applied research. You, as an academician, have an unwritten duty to help other academicians, and so rather than think of geeky ways to mess around with your new toy, why not share your wealth?

    Here are the advantages:

    1. You can wrangle additional publications out of it by being an author on published papers by providing sufficient support. Publications are the lifeblood of academics.

    2. You can use it to leverage improved relations (or establish relations) with other departments within your university, or across universities. This might not seem like it would be worth much to you, but it will be impressive to your supervisors and department heads (they can take credit for it), and will make you look good in their eyes.

    3. You can leverage it to good-news PR. University administrations love good PR. Talk to your PR department. Involve your department.

    4. You can do good in the world.

    I, personally, run an analysis of neural recordings every so often using Matlab that takes about a week on a reasonably modern dual-core system. It sure would be nice to have that finish in 1/500 as much time! There are about 20 or so researchers who are doing work like mine, and none of them, to my knowledge, are using a high-performance computing environment to analyze their data. It just isn't within their means. I'm not talking about some esoteric, arcane basic science research (although I'm a huge, huge proponent of that), but helping the paralyzed to walk again.

    --

    Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.