POV-Ray : Newsgroups : povray.general : Cloud rendering : Re: Cloud rendering Server Time
29 Jul 2024 08:15:38 EDT (-0400)
  Re: Cloud rendering  
From: taftj
Date: 26 Nov 2012 22:10:01
Message: <web.50b42eb2594a4362aaeb765e0@news.povray.org>
I'm resurrecting this old thread because I wanted to share my experiences with
rendering on an EC2 cluster.

As a benchmark, I rendered a large scene on my 3.2Ghz quad core desktop and it
took about 36 hours.

The key to making EC2 cost-effective is to use spot instances, which means they
are way cheaper but you run the risk of losing them.  In my experience, however,
the prices stay stable for days at a time, so if you bid high, you should be
fine.

I used high-cpu instances, which consist of 8 not-so-impressive cpu cores and
they only cost me $.07 per server per hour.  Compare this to the $.66 per
server/hour for an on-demand instance and this is a real bargain.  The catch is
that the price is not static, and if it rises above your bid, you could lose
your instance.  So best practice is to make your application "interruption
tolerant" which I think should be pretty doable.  I didn't do that, but instead
set a very high bid and hoped I didn't get hosed.  I didn't.

I took out 8 of these instances and set my 64 cores to work on my render.  I
didn't use anything clever for task distribution.  I just divided my image
horizontally into 8 equally-spaced strips and sent each one to a core.

the breakdown for server-hours was:
2 nodes took 2 hours
3 nodes took 3 hours
3 nodes took 4 hours

for a total of 25 server hours and a total cost of $1.75

With some bash kung-fu I believe that the price and/or render time could
probably be optimized a little more, but as a first order approximation
 this gives an idea what a render should cost.  For me I can guess that for
every 24 hours it would take me to render on my machine, it will cost about
$1.20, with render time depending on my cluster architecture, but theoretically
could be made arbitrarily small (just watch out because Amazon won't charge for
partial hours).

One word of caution is that this render was particularly well-suited for this
type of task distribution.  By that I mean that the hard to render stuff is more
or less uniformly distributed throughout the image.  An image that had mostly
background with all the hard stuff in one place would require a little more
thought.  Otherwise you could end up with all your nodes except one or two
finishing early and the last ones taking forever.

I do believe that cloud rendering can make renders possible that wouldn't be
feasible otherwise or can free up your machine for other things.  And with some
bash scripting could be done at minimal cost.

I also think that when povray supports mpi natively, we'll all be better off :)


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.