Hacker News new | ask | show | jobs
by nathancahill 4482 days ago
It's not. But if you've been donated the spare cycles, it's easier to use them than to spend time optimizing a difficult algorithm.

I wonder why Google donated spare cycles to solve the Rubik's cube when there are problems like Fold.it that could use it for science.

6 comments

Probably for more or less the same reason that you are using your computer to chat online, rather than dedicating all of its cpu cycles for science.
>I wonder why Google donated spare cycles to solve the Rubik's cube when there are problems like Fold.it that could use it for science.

An equally absurd question: Why doesn't google use all of it's man/computing power for science instead of trying to make money from internet ads?

So you're implying that donating cycles to solve the Rubik's cube is making them money?
I don't see how my comment implied that, at all.
But yes, yes it did.
Probably? (jadedly) It's a cheap one off that earns them a lot of free publicity.

Folding and SETI have been at it for decades, and will be for decades more. That'd be a lot of power/hardware costs for little net gain modulo time spent.

(Note: 30 cpu years really isn't a lot of time when you start getting truly massive parallelism, and google is certainly at that scale. I'm honestly surprised to see this is pthreads based, I would have expected it to lean heavily on CUDA (or maybe I'm just showing my naivete to the field of parallel programming))

Just to put some numbers behind this:

35 CPU years = 35 * 365 = 12,775 CPU days

Let's assume that your standard Google machine has 2 8-core processors, that is 16 cores per machine

12,775 / 16 = 798 machines

800 machines is a lot for your average person, but for a company like Google it is a very small drop in the bucket. And that is assuming you need to do all of the calculations in one day. If you are willing to do the calculations over a month, you only need 26 machines.

Even if "CPU year" applies to one 8-core processor, that still means it is just 26 * 8 = 416 machines, which is a very small number for Google.

And remember, the machines are still doing other things, this is just using idle CPU (generally a plentiful resource for your standard internet giant workload).

It would seem to me that this kind of program would be heavily reliant on branching for which Vector processing (which is what GPUs excel at) is not the best choice.
CUDA is for GPUs (specifically NVIDIA GPUs). This is CPU processing. Pthreads is the way to go.
Google has also donated cycles to at least one scientist working on the protein folding problem; he's a friend of mine, and also happens to be a fan of the Rubik's cube.
Because it's cool.

One day someone will turn lead into gold. There will never be a "good" reason to do that, but the history behind it is sufficient. There's nothing wrong with taking some pride in accomplishing something you've always wanted to do.

The idea that someone somewhere should pick a goal and then all the resources anyone could conceivably spare must be devoted to it, on pain of a designation of "immoral", is a little more disturbing to me.

That's a valid question. Although I didn't appreciate fold.it that much since the software crashed immediately when I tried it.