15 comments

[ 3.1 ms ] story [ 50.4 ms ] thread
For me on a rMBP the distributed render was twice as slow...

http://f.cl.ly/items/3t2m1Z241x3E0X2o181L/Screen%20Shot%2020...

Idea is, probably, that the more distributed nodes the more in parallel they can do. Useful for lots of frames or large images. Neat idea to put it in a browser, but main trouble with making a production rendering is in implementation details and support for applications and shading networks.
This is a huge waste of energy / calculation power, right?

I really, really understand the technical fancy behind this kind of parallel computing projects BUT have to imagine the wast of energy this would cause if really used for a real world calculation jobs compared with a dedicated server farm...

Or did the energy / calc-power realities change significantly lately?

What is the energy / calc-power reality?

Your own workstation and a dedicated server farm both waste power if they're under-utilized. So for server farms, we've consolidated with "clouds." Unfortunately your workstation still sits idle most of the time, so now this is just a really large cloud to schedule that capacity as well.

The power draw of my laptop under load versus typing this comment is almost 2:1. Under-utilized computers are not a waste of power, they're saving power. I'm especially not OK with unknowingly donating my battery capacity and limited cell data so CrowdProcess can sell it to someone while I read an article. This is just bad business for everyone involved (and the environment).
> Under-utilized computers are not a waste of power, they're saving power.

Does this mean we should fill homes and datacenters with a larger number of machines operating at fractional capacity in an effort to be more efficient than a smaller number fully utilized machines?

This citation, ceteris paribus, seems to disagree: http://stackoverflow.com/questions/6128960/what-is-the-relat...

> I'm especially not OK with unknowingly donating my battery capacity and limited cell data so CrowdProcess can sell ...

That's fine, and I certainly agree, but it's off-topic to my question and this thread. I don't appreciate being summarily down-voted because every single comment is not in lock-step with berating the submitter on this point. There's a thread mentioning this, and I'm sure we all upvoted it.

Thanks.

Say you have a computational task you want to run.

You can run that on a single server for 1 minute, and use 5 watt-hours of power.

Or you can translate it to JavaScript and run it on 50 web browsers for a minute each, and use at least 50 watt-hours of power. That's what this would look like, since you lose so much to having to use JavaScript, not having a dedicated server-class CPU devoted to your task, and to overhead of transferring the data to/from the client. Heck, you'll waste a bunch of power just sending the code and data to clients that leave the page before sending back results, which means their slice of the work has to be run multiple times on multiple computers.

Same end result, 10+ times more electricity used, through a combination of having to do much more work, and doing it on much less efficient hardware. Money down the drain, pollution in the air. In reality the math is even worse than that for most tasks.

So, nobody's suggesting you fill homes with more PCs for some reason. The suggestion is to leave the PCs we already own alone, drawing a fraction of their maximum possible electric usage. If you're going to try to better utilize existing capacity, do it by buying spot instances on AWS for pennies per hour, because those machines will give you vastly more computation per watt. It would also be more power-efficient to add a brand new dedicated server to the data center for these tasks than to utilize visitor web browsers.

This works fine when you're doing stills with simple scenes. When you've got GBs/TBs of external assets in the form of source geometry and texture data, all nodes need access to the same source data.

Once you start doing Monte Carlo path tracing and need decent sampling, you've also got to be careful that each node is generating the seeds for the random number generator correctly, otherwise you get patterns in the noise when you piece them back together.

For animated stuff, you're better off distributing the different frames across the nodes instead of splitting up each frame.

Unfortunatly it killed my browser (Chrome latest) on my macbook, but nice project!
25s on my machine vs 12s across 16 machines and a load of bandwidth flying round the internet. Not ethically worth it.
So a more than doubling of performance is unethical because the internet is being used for its intended purpose? Can you elaborate on this criticism? I'm assuming your threshold for "ethical" is perhaps 10x?
That's quite the condescending comment.

The 'ethical' part is likely referring to using visitors' browsers/CPUs to do your compute work without getting consent.

Parent post also mentioned the bandwidth usage is high so you're not only using the CPU but using up a visitor's bandwidth (many of whom have low monthly limits).

If your internet connection is slow but your computer is modestly fast the CrowdProcess approach is demolished.

Internet capped at 100KB/s: http://i.imgur.com/NhOiWCz.png