Hi.
I’m trying to set up a small deadline network, but I don’t get the slaves to work.
The GUI fires up, i get a error message, and then it quits again. Here’s the error:
Appreciate every bit of help I can get.
Thanks!!
/Oskar
Hi.
I’m trying to set up a small deadline network, but I don’t get the slaves to work.
The GUI fires up, i get a error message, and then it quits again. Here’s the error:
Appreciate every bit of help I can get.
Thanks!!
/Oskar
Hi Oskar,
It looks like the permissions on the repository share aren’t completely open. Shutdown all Deadline applications, and try running the following commands from a Terminal on your repository directory and try again:
chown -R nobody:nogroup /Applications/DeadlineRepository
chmod -R 0777 /Applications/DeadlineRepository
Let us know if this helps.
Cheers,
Alright! Thanks for the super fast response !
I will try that first thing in the morning, god I wish I was at work right now
Good night!
Okey, so I’ve tried the commands now, but all i get is this error:
chown: /Applications/DeadlineRepository: Operation not permitted
And the terminal lists that error on EVERY folder / file inside the DeadlineRepository.
Same thing with both commands.
I suppose I don’t have the correct permissions or something like that?
Thanks again!
/Oskar
Hi Oskar,
You probably need to “sudo” those commands:
sudo chown -R nobody:nogroup /Applications/DeadlineRepository
sudo chmod -R 0777 /Applications/DeadlineRepository
You’ll be prompted for for your password when doing this.
Cheers,
Yep, that’s what I thought. Trying to figure out what the sudo pass is together with the tech guy.
Thanks again! I’ll be back with more info
I’m really close now I think, but now I’m getting this error:
Exception Details
RenderPluginException – An error occurred in StartJob(): Error in RenderExecutable(): 32 bit Nuke 6 render executable could not be found in the semicolon separated list “/Applications/Nuke6.0v1/Nuke6.0v1.app/Contents/MacOS/Nuke6.0v1”. The path to the render executable can be configured from the Plugin Configuration in the Deadline Monitor.
RenderPluginException.Cause: JobError (2)
Exception.Source: deadline
Exception.TargetSite: Void StartJob(Deadline.Jobs.Job)
Exception.Data: ( )
Exception.StackTrace:
at Deadline.Plugins.ScriptPlugin.StartJob (Deadline.Jobs.Job job) [0x00000] in :0
at Deadline.Plugins.Plugin.StartJob (Deadline.Jobs.Job job) [0x00000] in :0
at Deadline.Slaves.SlaveRenderThread.RenderCurrentTask () [0x00000] in :0
I’ve tried different kinds of paths to get it to find the right executable (.app, since I’m running os x?) but it won’t work
Thanks!
You need to select the UNIX executable file that’s buried in the .app folder. I noticed that this is your current path:
/Applications/Nuke6.0v1/Nuke6.0v1.app/Contents/MacOS/Nuke6.0v1
Does this point to a file that exists? If not, change it to the proper path. Just use the File Browser in the plugin configuration to find the Nuke executable file that’s in the [app]/Contents/MacOS folder of your Nuke installation.
Cheers,
Hi again, and thank you for all the support! I found the right file path thanks to you and now one of my machines seems to render fine (although it feels a bit slow :/)
But the other machine (running as a slave) is giving me this error when I’m trying to submit a job:
Error Message
Exception during render: An error occurred in RenderTasks(): RuntimeError: Cancelled
at Deadline.Plugins.ScriptPlugin.RenderTasks (Int32 startFrame, Int32 endFrame, System.String& outMessage) [0x00000] in :0
Slave Log
Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/Primatte3.tcl
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/Primatte.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/HueCorrect.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/DegrainSimple.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/Transform.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/Defocus.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/Reformat.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/Dilate.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/EdgeDetectWrapper.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/EdgeDetect.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/ColorCorrect.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/FrameBlend.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/EdgeBlur.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/Keymix.dylib
0: STDOUT: Loading /Applications/Nuke6.0v1-32/Nuke6.0v1.app/Contents/MacOS/plugins/dpxWriter.dylib
0: STDOUT: Total render time: 0.00 seconds
0: STDOUT: READY FOR INPUT
0: STDOUT: >>> Traceback (most recent call last):
0: STDOUT: File “stdin”, line 1, in
0: STDOUT: RuntimeError: Cancelled
---- February 22 2010 – 03:49 PM ----
Scheduler Thread - Render Thread 0 threw an error:
Scheduler Thread - Exception during render: An error occurred in RenderTasks(): RuntimeError: Cancelled
at Deadline.Plugins.ScriptPlugin.RenderTasks (Int32 startFrame, Int32 endFrame, System.String& outMessage) [0x00000] in :0
Error Type
RenderPluginException
Error Stack Trace
at Deadline.Plugins.Plugin.RenderTask (Int32 startFrame, Int32 endFrame) [0x00000] in :0
at Deadline.Slaves.SlaveRenderThread.RenderCurrentTask () [0x00000] in :0
Any ideas? I’m running no funky plugins as far as I know, and all the furnace core stuff is included in the Nuke version we’re running.
That error seems to indicate a python error, but I’m not sure if it’s from Deadline or from another script that Nuke is trying to load. On the machine that is giving you this error, can you open a terminal and run the following command:
/Applications/path/to/Nuke/exe -V -x /path/to/Nuke/script.nk
Of course, replace the path to the Nuke executable with the one that you’ve specified in the Deadline plugin configuration, and replace the path to the Nuke script as necessary (probably best to copy the script file locally to the machine, and then change the path to point to it). Check to see if you get the same error.
Cheers,
Hi again, and thanks
The slave starts to render when I’m running that command! Although I had to tweak the file paths a bit so I guess that’s where the problems lie…
I had to change
/Volumes/media1/rendertest/test01.######.dpx
to
/Volumes/rendertest/test01.######.dpx
in each of the read / write nodes of the script to get the slave to start rendering.
And if i do that, the main machine won’t find the files of course.
EDIT: I got it all to work now, tweaked around a bit with the file paths and shared my whole drive. Gonna do some speed tests now!
Thanks for all the help!
The initial test was almost twice as slow as it was when I only used one machine before
Is the slave rendering directly over the network or is it rendering locally and then transferring the frame after it’s rendered?
It would be rendering directly over the network. When you’re comparing render times, are you comparing the times of individual frames, or overall time to render a full sequence? When splitting up a frame sequence and distributing it between multiple machines, there is some inherent overhead, and depending on the render time of each frame, this overhead may greatly impact the overall render time.
For example, let’s say you have a 10 frame sequence, and normally each frame takes 2 seconds to render. If you render this locally on one machine, it will take 20 seconds to render.
Now let’s submit this to Deadline and split it up into 10 tasks (1 frame per task) to be distributed to 1 node (for simplification). The first time the node gets the Nuke job, it needs to start up Nuke and load the Nuke script (we’ll say this takes 10 seconds). Now it renders the first task in 2 seconds, then it spends 5 seconds getting the next task, renders it in 2 seconds, etc. In total, you’re looking at about 120 seconds, which is MUCH longer. Even if this was split up between 2 nodes, you’re still looking at about 60 seconds of overall time. Of course, if you had 20 machines, the overall time would be around 12 seconds (10 seconds for each node to start up Nuke and 2 seconds to render the single frame), in which case you would actually see a speed increase.
Now there are ways to workaround this overhead, and that is to use larger chunk sizes (frames per task) when you know ahead of time that your frames will render quickly. For example, if you know that frames will only take 2 seconds to render, you should bump up the chunk size to 10 or 20. This will reduce the overhead significantly, because the overhead is only applied every 10 to 20 frames, instead of every frame. I hope this makes sense.
A good way to confirm if rendering through Deadline truly takes longer than rendering locally is to compare individual frame times (not overall wall clock time), or by submitting a full frame sequence with the chunk size equal to the number of frames (in the case above, use a chunk size of 20) so that the job only has one task. Compare the rendering time of this single task (that consists of all frames) to the time it takes the sequence to render locally on your workstation.
Cheers,
Wow, it all makes so much more sense now, thank you so much for that !
I’m gonna try and hook up another slave to the system and start some (real) tests
Cheers!
EDIT : Oh, and one more thing I noticed; When I set the chunk size to the same numer as frames to render (87 in this case) Deadline seems to distribute all frames except one (the first one) to one of the machines, and the other one gets to do all the work.
Seems to split up the job better at half the chunk size though.
Hmm, if the chunk size equals the number of frames, you should only get a job with one task (ie: if your frame range is 1-87, then a chunk size of 87 should only produce one task). Of course, if you have 2 machines that you want to participate, then splitting the chunk size in half makes sense.
Cheers,