POV-Ray : Newsgroups : povray.binaries.animations : render farm Server Time
19 Jul 2024 07:32:20 EDT (-0400)
  render farm (Message 1 to 8 of 8)  
From: Ian
Subject: render farm
Date: 23 Feb 2003 11:24:14
Message: <Xns932B69D74DE1Bpovian@204.213.191.226>
Hello,

This is my first post here. I have been playing with the idea of doing a 
render farm. My current thinking is to use cgi (perl) and a central server 
that keeps track of some basic state information. The POV scene uses this 
state information to render it's animation. So far I have two state 
schema's. One is a simple TIME variable that is incremented on each request 
to the server. 

The second is a sequence/duration thing. The state is maintained in a .inc 
file that looks like this.

#declare sequence_array = array[2,3,2]
#declare sequence_current = 2;
#declare sequence_index = 2;
#declare sequence_status = 'complete';

Each call to the server increments the sequence_index. When a sequence_index 
> sequence_array[sequence_current] I reset the index to 0 then increment the 
sequence_current. What this basically comes down to is a "what time is it?" 
thing. 

I use will be using perl to call the server. The server will return the 
state.inc file (as text) and the render client will use write this to it's 
local copy of state.inc, then shell out to pov to render that frame.

There is an enlist phase in this where a render client get's information 
about the project which includes things like:
> Where to ftp the result file.
> The project file list.
> other things the client would want to know.

 ---> What do YOU do? < ---
There are lots of folks out there coding POV scenes and lot's of ways to get 
the job done. It would be very helpful to me if you guys gave me some input 
on how you approach the state problem. For instance you might say "I use the 
interpolate function to determine where my objects vector is and use Clock 
to calculate where I am at any given time." In a case like this the master 
server might simply increment the Initial_Frame (which is like the first 
schema) I mentioned.
 ---> What do YOU do? < ---

Anyway..

I thought I would check around to see what kind of info I could find and 
found this link:

http://www.badcheese.com/~steve/index.php?page_title=Povray

Pretty cool. It delivers the product in a very simple way.

Many of the links I visited were defunct.. mia.. 404. I know about the linux  
binary distribution and have a linux box but I am interested in a cross 
platform thing.

Anyway, to get to the point. I have spent a lot of time looking here and 
thought I would post to see if anyone knows of any good render farm projects 
or links. Also, has anyone here approaced the problem themselves and if so, 
can you tell me a little about your project? Can you elaborate on the  
---> What do YOU do? < --- section?

Hope this is clear.

cheers.


Post a reply to this message

From: Theo Gottwald *
Subject: Internet-anabled ?
Date: 23 Feb 2003 11:32:07
Message: <3e58f787$1@news.povray.org>
Do you plan to make a cross-platform thing able to render things shared over
the (inter)net ?

-- Theo
----------------------------------------------------------------------------
---------------------------------
Distributed Network-Rendering or Local SMP-Rendering on all CPU's you have.
With SMPOV und
POV-Ray 3.5. & NEW: Mega-POV 1.0 * Download free at:
http://www.it-berater.org/smpov.htm


Post a reply to this message

From: gimi
Subject: Re: render farm
Date: 25 Feb 2003 13:22:46
Message: <3E5BB466.7000405@psico.ch>
hi Ian!

Ian wrote:
> [...] I have been playing with the idea of doing a
> render farm. My current thinking is to use cgi (perl) and a central server 
> that keeps track of some basic state information. The POV scene uses this 
> state information to render it's animation. So far I have two state 
> schema's. One is a simple TIME variable that is incremented on each request 
> to the server. 
> The second is a sequence/duration thing. The state is maintained in a .inc 
> file that looks like this. 
 > [...]
> Anyway, to get to the point. I have spent a lot of time looking here and 
> thought I would post to see if anyone knows of any good render farm projects 
> or links. Also, has anyone here approaced the problem themselves and if so, 
> can you tell me a little about your project? Can you elaborate on the  
> ---> What do YOU do? < --- section?

i did something like that using perl, the "povray render server";
see http://www.psico.ch/index.php?page=prs .

it runs its own protocol on top of tcp/ip, works directly
with the supplied .ini file, parses it and builds a new one
for any client requesting a render job.  single frames
(from .pov files) are not split, however, as i basically
only used prs to render animations with a lot of frames.
then, the full set of files needed to render part of an
animation are sent to the client (including .pov, .inc and
image files), which in turn will return the rendered images
before requesting another job.

if you already know perl (i assume you do), then you should
have no trouble understanding the way it works by looking at
the code.  there also is a readme included in the zip archive
describing how to configure everything needed.

note though that i was developping it at a time when i had
no unix box at hand (and did hardly know perl before), so it
is only tested on perl for win32; but getting it to work on a
linux box would only require a few minor changes.

if that is what you'd like to do, and if i can provide further
help, please let me know.  actually, i was already thinking of
doing the port myself, because i've just got a new 1.3 GHz
celeron gateway running linux with over 95% cpu idle time... ;)

also, the code in the server's main loop that waits for clients'
requests and handles them, is *very* bad.  now that i have
learned more, i'd do it with a simple state machine and fork()
the handlers off (which won't work with windoze-perl :/ )...

anyway, i recommend that you keep your state information as
simple as possible, and that you do not touch the time values
yourself.  it's much simpler to change the subset_start/end_-
frame numbers only, and let povray figure out the actual time
itself - except if you insist on changing the initial/
final_frame values as well; but this will make things *very*
(and unnecessarily) complicated!

OTOH, smpov is an alternative. i guess that would mean less
work! :D


i hope this helps.

g.

-- 
"Beware of bugs in the above code. I have only proved it
correct, not tried it."  -- Donald Knuth
++ mailto:gim### [at] psicoch ++ http://www.psico.ch/ ++


Post a reply to this message

From: Theo Gottwald *
Subject: Re: render farm - trouble farm .-) ?
Date: 27 Feb 2003 11:51:41
Message: <3e5e421d$1@news.povray.org>
> OTOH, smpov is an alternative. i guess that would mean less
> work! :D

Are you shure about that :-) ?

I am just mailing with Ian, cause the documentation of SMPOV is really a
mess,
so a user has many chances to make mistakes and it doesn't work.

I did SMPOV primarily for myself, so I did not write nowhere much how to use
it.
Doesn't mean its not needed. I just didn't do it. So I an tried it and had a
lot of trouble.

Just two things if anyone else has trouble with SMPOV:     ...
- Ian sent me a corrected text for SMPOV, it will be included in the next
version (thanks a lot Ian !)
- If you cannot render your file, open the com-folder and put all files
which belong to that current scene
  you want to render there. Remember: the source folder is not accessible to
the clients and
  the current SMPOV-Version only copies the ".pov"-file not any necessary
".inc" files or pictures.

-- Theo
----------------------------------------------------------------------------
-----------------------------
Distributed Network-Rendering or Local SMP-Rendering on all CPU's you have.
With SMPOV und
POV-Ray 3.5. & NEW: Mega-POV 1.0 * Download free at:
http://www.it-berater.org/smpov.htm >


Post a reply to this message

From: Tom Galvin
Subject: Re: render farm
Date: 27 Feb 2003 14:06:22
Message: <Xns932F8F4A29CDDtomatimporg@204.213.191.226>
Ian <pov### [at] nebulouscorecom> wrote in
news:Xns### [at] 204213191226: 

> Hello,
> 
> This is my first post here. I have been playing with the idea of doing
> a render farm. 

There are several existing projects that I know of out there.  A summary 
of them is at the end of this reply.  I would suggest starting simple. Do 
it frame by frame.  Anything else gets really complicated, really buggy, 
really fast.  Based on the work I have done for the Internet Movie 
Project I have boiled the process down to this:

The server just needs to do three things.

    1) Issue frames
    3) Track frames( Preferably in a database)
    2) Receive frames

The client just needs to do three things
    1) Get a frame
    2) Render a frame
    3) Return a frame

Our design goals are:

    * Cross platform client/server
    * http communication 
    * web based management

Obviously the devil is in the details.  Both Gimli and IMP have made the 
source available if you want to see what has been done.  The server 
portion of IMPFarm is still two ASP pages.  They are being converted to 
perl.  If you want to join the IMPFarm project just sign up. You can see 
the work we have done so far if you look at

   http://test.imp.org/impfarm/


Tom




POV-Ray RenderFarms
=======================================
IMPFarm
    Language=Perl
    Renderer=POV-Ray
    http://sourceforge.net/projects/impfarm/

Povray Render Server(Gimli already replied to this thread)
     Language=Perl
     Renderer=POV-Ray
     http://www.psico.ch/index.php?page=prs

The PVM patch for POV-Ray
     Language = C++
     Renderer = POV-Ray
     http://pvmpov.sourceforge.net/




Non POV-Ray projects
=======================================
BORG - BORG Open Rendering GUI
     Language = Java
     Renderer = Renderman compliant
     http://www.project-borg.org/home/index.html

RenderFarm.NET
     Language = XML
     Renderer = Maya
     http://www.renderfarm3d.com/

And these projects on source forge look dead:
     http://sourceforge.net/projects/renderfarm/
     http://sourceforge.net/projects/littlefarm/
     http://sourceforge.net/projects/barf/


Post a reply to this message

From: Nathan Letwory
Subject: Re: render farm
Date: 28 Feb 2003 04:15:40
Message: <3e5f28bc$1@news.povray.org>
Tom Galvin wrote:
> Ian <pov### [at] nebulouscorecom> wrote in
> news:Xns### [at] 204213191226: 
> 

Nice projects. I really should delve into them more. I also have 
recently been thinking about this, and I thought that maybe it could be 
interesting also to look into clustering techniques like Mosix and 
OpenMosix. It would be nice if a frame could be divided. Yes, I am aware 
of several problems related to this (radiosity, etc.), but I thought 
that for instance current projects with Mosix like netram would be helpful.

I don't know how it could apply to PoV-ray (haven't really read the 
sources yet), but maybe someone knows more about this and can say 
something about it...

Just a thought.

-Nathan

> 
>>Hello,
>>
>>This is my first post here. I have been playing with the idea of doing
>>a render farm. 
> 
> 
> There are several existing projects that I know of out there.  A summary 
> of them is at the end of this reply.  I would suggest starting simple. Do 
> it frame by frame.  Anything else gets really complicated, really buggy, 
> really fast.  Based on the work I have done for the Internet Movie 
> Project I have boiled the process down to this:
> 
> The server just needs to do three things.
> 
>     1) Issue frames
>     3) Track frames( Preferably in a database)
>     2) Receive frames
> 
> The client just needs to do three things
>     1) Get a frame
>     2) Render a frame
>     3) Return a frame
> 
> Our design goals are:
> 
>     * Cross platform client/server
>     * http communication 
>     * web based management
> 
> Obviously the devil is in the details.  Both Gimli and IMP have made the 
> source available if you want to see what has been done.  The server 
> portion of IMPFarm is still two ASP pages.  They are being converted to 
> perl.  If you want to join the IMPFarm project just sign up. You can see 
> the work we have done so far if you look at
> 
>    http://test.imp.org/impfarm/
> 
> 
> Tom
> 
> 
> 
> 
> POV-Ray RenderFarms
> =======================================
> IMPFarm
>     Language=Perl
>     Renderer=POV-Ray
>     http://sourceforge.net/projects/impfarm/
> 
> Povray Render Server(Gimli already replied to this thread)
>      Language=Perl
>      Renderer=POV-Ray
>      http://www.psico.ch/index.php?page=prs
> 
> The PVM patch for POV-Ray
>      Language = C++
>      Renderer = POV-Ray
>      http://pvmpov.sourceforge.net/
> 
> 
> 
> 
> Non POV-Ray projects
> =======================================
> BORG - BORG Open Rendering GUI
>      Language = Java
>      Renderer = Renderman compliant
>      http://www.project-borg.org/home/index.html
> 
> RenderFarm.NET
>      Language = XML
>      Renderer = Maya
>      http://www.renderfarm3d.com/
> 
> And these projects on source forge look dead:
>      http://sourceforge.net/projects/renderfarm/
>      http://sourceforge.net/projects/littlefarm/
>      http://sourceforge.net/projects/barf/


Post a reply to this message

From: Greg Edwards
Subject: Re: render farm
Date: 1 Mar 2003 21:53:32
Message: <zktp76lae1ti$.16bofxjgn4e7f$.dlg@40tude.net>
> also, the code in the server's main loop that waits for clients'
> requests and handles them, is *very* bad.  now that i have
> learned more, i'd do it with a simple state machine and fork()
> the handlers off (which won't work with windoze-perl :/ )...

Actually, NTFS supports any number of forks per file, although I still 
think that forking is a bad idea. :P


Post a reply to this message

From: Theo Gottwald *
Subject: Render a render farm ...
Date: 3 Mar 2003 02:38:30
Message: <3e630676@news.povray.org>
> There are several existing projects that I know of out there.

When I started with SMPOV i found nothing that was as simple as I wanted it
for myself.
WEB-based management ? http-communication ? cross-platform ?
I did not need that, others would like to see that. I have only Windows
here.
Not for philosopical reasons (have no problem with Linux) but for practical
reasons (work).

What I needed was in short:
- drag a ".pov"-file onto a program
- the POV-Ray on all PC's start up rendering
- have the resulting picture in the same folder where the source file was
originally.
- 1,2,3
So this was my "basic thought". Want to share it at this place.

>it frame by frame.  Anything else gets really complicated, really buggy,
> really fast.

Buggy ? That maybe true if you use these "WEB-technologies" (maybe).
For me the tiling works fine for SMPOV so long you keep distance from scenes
that use
Radiosity or those sweet mechsims..
You cannot tile them or lets say "You can but the resulting
pictures/animations are just funny".

Basically the "tiling" is the only chance to save time using the "standard
unpatched POV 3.5"
rendering ONE single picture. So I can say it works really fine for me.
If you don't use tiling, you can "only" distribute frames.

Basically what SMPOV does looks like that:
- get a ".pov"-file
- put a copy of it into the "shared folder" (a folder where all the clients
have access to)
- put a "signal-file with a job-description there"
- start a thread that waits that this job is done

on the client side the render-agents do this:
- wait for "signal-file with a job-description there"
- read it and correct pathes (for the POV-Ray executable)
- start the render-job and place a resulting ".bmp" into the COM-folder
- delete the "signal-file with a job-description" and make ".rdy" file
instead to tell SMPOV "the tile is ready"

Now SMPOV (the thread ...) finds the ".rdy"-files,  counts them if ALL tiles
are ready. If so:
- starts PicPend.exe which "puts the tiles together to a single picture" and
also
- deletes all temp-files
- copies the resulting bmp-files to the original folder (where the
".pov"-fiile was "dropped from".

Other features are:
- distribution of frames (render without tiling)
- support for MEgaPOV 1.0

Currently there is no "controll-panel" to controll the clients from the
server. I have all my PC's in the same room so  I did not need that :-).

Thats in short how I wanted it and I could not find it so I did it myself.
Not WEB-based, cause I only wanted to render locally.

However I'd myself switch to any other sollution if it works better or is
easier. Just cannot
tell you at what point.

Oh ... and Ian Clark (See first post of this thread) got it running now !
And he sent me a new corrected text for SMPOV which is now included in the
package. Maybe you try it on anythig that does not end with "x" :-).

--Theo
----------------------------------------------------------------------------
---------------------------------
Distributed Network-Rendering or Local SMP-Rendering on all CPU's you have.
With SMPOV und
POV-Ray 3.5. & NEW: Mega-POV 1.0 * Download free at:
http://www.it-berater.org/smpov.htm

> There are several existing projects that I know of out there.  A summary
> of them is at the end of this reply.  I would suggest starting simple. Do
> it frame by frame.  Anything else gets really complicated, really buggy,
> really fast.  Based on the work I have done for the Internet Movie
> Project I have boiled the process down to this:
>
> The server just needs to do three things.
>
>     1) Issue frames
>     3) Track frames( Preferably in a database)
>     2) Receive frames
>
> The client just needs to do three things
>     1) Get a frame
>     2) Render a frame
>     3) Return a frame
>
> Our design goals are:
>
>     * Cross platform client/server
>     * http communication
>     * web based management
>
> Obviously the devil is in the details.  Both Gimli and IMP have made the
> source available if you want to see what has been done.  The server
> portion of IMPFarm is still two ASP pages.  They are being converted to
> perl.  If you want to join the IMPFarm project just sign up. You can see
> the work we have done so far if you look at
>
>    http://test.imp.org/impfarm/
>
>
> Tom
>
>
>
>
> POV-Ray RenderFarms
> =======================================
> IMPFarm
>     Language=Perl
>     Renderer=POV-Ray
>     http://sourceforge.net/projects/impfarm/
>
> Povray Render Server(Gimli already replied to this thread)
>      Language=Perl
>      Renderer=POV-Ray
>      http://www.psico.ch/index.php?page=prs
>
> The PVM patch for POV-Ray
>      Language = C++
>      Renderer = POV-Ray
>      http://pvmpov.sourceforge.net/
>
>
>
>
> Non POV-Ray projects
> =======================================
> BORG - BORG Open Rendering GUI
>      Language = Java
>      Renderer = Renderman compliant
>      http://www.project-borg.org/home/index.html
>
> RenderFarm.NET
>      Language = XML
>      Renderer = Maya
>      http://www.renderfarm3d.com/
>
> And these projects on source forge look dead:
>      http://sourceforge.net/projects/renderfarm/
>      http://sourceforge.net/projects/littlefarm/
>      http://sourceforge.net/projects/barf/
>
>
>
>


Post a reply to this message

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