POV-Ray : Newsgroups : povray.advanced-users : Batch multi-core rendering server wrapper for povray : Re: Batch multi-core rendering server wrapper for povray Server Time
30 Jun 2024 02:50:34 EDT (-0400)
  Re: Batch multi-core rendering server wrapper for povray  
From: tmillic
Date: 25 Feb 2010 02:55:27
Message: <4b862cef$1@news.povray.org>
Nice. I've been content with just running folding@home on the other cores, 
but this is nice.


Stephen Pope wrote:

> 
> Hello all,
> 
> I'd like to share a useful utility I developed for running povray on a set
> of scripts in parallel on multi-core servers. It's a simple C++ program
> (*nix & MacOSX) that can be run in parallel from makefiles to render
> successive frames of a scene with many threads of povray.
> 
> The source code is at:
>     http://FASTLabInc.com/pov-render.cpp
> 
> Here's the header of the source.
> 
> stp
> 
> -----
> 
> POV-Renderer -- Batch multi-core rendering server wrapper for povray
>  (i.e., run povray on a set of scripts in parallel on multi-core servers)
>  Stephen Pope - stp### [at] heaveneverywherecom - Dec, 2009, Feb, 2010
> 
> This program can be run from a make file in multiple threads to schedule
> batch rendering with povray on multi-core machines. Each thread runs
> through the frames in sequence using a frame# lock file for
> synchronization. The typical Makefile entry is,
> 
>  # 2 renderer threads, each makes 600 out of 1200 frames for t = 0 to 1
>  t4:
>   echo 0 > frame_num
>   nohup ./pov-render -n 600 -f 0 1200 -t 0.0 1.0 &
>   sleep 2
>   nohup ./pov-render -n 600 -f 0 1200 -t 0.0 1.0 &
> 
> The cmd "make t4" will now fork 2 processes, which the OS will allocate to
> their own cores.
> You can run more threads on multi-core machines by editing the Makefile.
> 
> The povray command generated to render frames in a thread has format:
> 
> /opt/local/bin/povray +W1920 +H1080 +FN +Q9 +KC
>  +I/home/stp/POV/Sc12.pov +O/scratch/stp/Sc1200
>  +L/opt/local/lib/povray-3.6.1/include +L/home/stp/POV
>  +KFI0 +KFF1000 +KI0.0 +KF1.0 +SF81 +EF81
> 
> The details of the command options are in the C++ code below, and can be
> overridden from the render command.
> 
> pov-render command flags
>  -c command
>  -n # frames to make
>  -s starting frame
>  -i in file
>  -o out file
>  -q quality
>  -f F0 F1 -- start/end frame
>  -t t0 t1 -- start/end time
>  -x # threads
>  -u print usage
> 
> Compile this program like, (in Makefile),
>  # target to compile renderer
>  re:
>   g++ -o pov-render pov-render.cpp  # add -lpthread on Linux
> 
> -----


Post a reply to this message

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