luxconsole suggestions

Discussion related to the implementation of new features & algorithms to the Core Engine.

Moderators: jromang, tomb, zcott, coordinators

Re: luxconsole suggestions

Postby cwichura » Wed Feb 15, 2012 5:39 pm

What about having the master save the session IDs when it writes out its periodic disc representation so that it is restartable and can re-connect to slaves that are still processing work for it in the event that it crashes?

If it saves its session IDs, then it could also have an option when started to instead do "cleanup and exit only" when launching so that you can gracefully shut down a bunch of slaves in the event the master has gone away. This seems more secure to me than simply having a "force" option that a master can specify on connect.
cwichura
 
Posts: 375
Joined: Sun Feb 12, 2012 11:31 pm

Re: luxconsole suggestions

Postby cwichura » Fri Feb 17, 2012 1:10 pm

Also, does luxconsole in server mode have a way to override the use of GPU acceleration? On my master machine, as posted in another thread (http://www.luxrender.net/forum/viewtopic.php?f=16&t=7844), enabling GPU acceleration causes luxrender to crash. I've got a MacBook Pro (early 2008, so has an Nvidia 8600M GT, which I realize is old and may not be of much use to lux) that I'm trying to use as a network render server, and it doesn't look like it's using the GPU. (Not to mention that it seems to be absolutely crawling, with a Samples/Sec of less than 1! But it also doesn't peg out the CPU, either -- luxconsole is only using about 10% of the CPU when in the rendering loop.)
cwichura
 
Posts: 375
Joined: Sun Feb 12, 2012 11:31 pm

Re: luxconsole suggestions

Postby Lord Crc » Fri Feb 17, 2012 1:53 pm

cwichura wrote:Also, does luxconsole in server mode have a way to override the use of GPU acceleration?


You can make a text file containing
Code: Select all
opencl.gpu.use=false

and save it in the directory where luxconsole is. Then in the lxs file you can specify the "configfile" parameter to the Renderer clause, and point it to the text file you created, for example:
Code: Select all
Renderer "hybrid"
  "string configfile" ["hybridconfig.txt"]

Here I assumed you called the file "hybridconfig.txt" (without the quotes of course).

NB: don't create this file for the master. Otherwise it will send it to the slave, overriding your local file. It will instead just try to load it and fail, and just use the default value which is true (ie use gpu). You'll get an couple of errors in the log saying that it can't find the file, but you can safely ignore that.
May contain traces of nuts.
User avatar
Lord Crc
Developer
 
Posts: 4518
Joined: Sat Nov 17, 2007 2:10 pm

Re: luxconsole suggestions

Postby J the Ninja » Fri Feb 17, 2012 3:13 pm

Lord Crc wrote:NB: don't create this file for the master. Otherwise it will send it to the slave, overriding your local file. It will instead just try to load it and fail, and just use the default value which is true (ie use gpu). You'll get an couple of errors in the log saying that it can't find the file, but you can safely ignore that.


Could we add an exception for the renderer config file? I'm not sure this behavior makes a whole lot of sense. The entire point of this file is for per-node config, since you can set these params globally in the lxs.
-Jason

Material DB Admin
User avatar
J the Ninja
Developer
 
Posts: 2250
Joined: Wed May 19, 2010 9:54 pm
Location: Portland, USA

Re: luxconsole suggestions

Postby Lord Crc » Fri Feb 17, 2012 3:27 pm

J the Ninja wrote:Could we add an exception for the renderer config file? I'm not sure this behavior makes a whole lot of sense. The entire point of this file is for per-node config, since you can set these params globally in the lxs.


Yes, reading the code I was thinking the same :)
May contain traces of nuts.
User avatar
Lord Crc
Developer
 
Posts: 4518
Joined: Sat Nov 17, 2007 2:10 pm

Re: luxconsole suggestions

Postby cwichura » Wed Feb 22, 2012 2:54 pm

Riddle me this...

I have luxrender running on my (fairly beefy) laptop, as that's where I also use DAZ Studio+Reality to create scenes. At work, we have a server that sits idle a lot of the time, so I installed lux on it as well to be a render slave using luxconsole. Both machines are 64-bit Windows and running the Feb 4th build from the Weekly Test Build forum (most current in there at this time).

My understanding of the networking support is that the master machine contacts out to the slaves on whatever periodic interval is set (I used 30 min, FWIW) and requests (via a pull command of some sort) the current film file from each slave. It also connects to each slave on a fairly frequent base to grab their current log file. The first time it talks to a slave, a UUID gets assigned so that the slave knows which master it should accept commands from while a job is actively running. If the wrong UUID is specified for a command, the slave responds "BUSY".

So, on the slave machine, I started it with "luxconsole -s -W". I added -W so that I could always grab its film file, in the event the networking failed (since my experience so far has been that it fails quite frequently, even when on the same local LAN). Since the master in theory drives the show, polling all the slaves, my assumption was that if I disconnect the laptop while it is not talking to the slave (confirmed via a netstat right before pulling the Ethernet cable), it should be possible to sleep/hibernate the laptop and take it home (I don't like to leave it at the office, since we've had them go missing in the night a few times by stick-fingered cleaning staff) and then bring it in the next day, plug it back in, turn it back on, and it should be able to connect to the slave (which has been running all night) and it will have the correct UUID since luxrender was never actually shut down (just the OS suspended).

Well, it didn't work. The slave the next morning (which had done a nice job of cranking through around 800 S/p) reports BUSY when the master tries to talk to it. What's more, the film file is not being written with any real regularity. The last time it was written was at 4:40AM. It's now 1:40PM and it still hasn't updated the film file. I'm hoping that it might update it at 4:40PM (a 12 hour dump cycle), since 4:40PM is about the time it would have last had contact from the master the prior day, when I was packing up to head home. If it's really on a 12 hour dump cycle, then the -W option really isn't very useful for film file recovery (via manual luxmerge) in the event that the communications between the master and slave gets corrupted. The master's config file is set to write its film file once every 15 minutes, which I would have thought with the way slaves inherit everything from their masters, would have affected how often the slave writes its film file.

So 1) why did the slave reject the master when the UUID should have been preserved? 2) is there some way I can tell the luxconsole process to dump its film file arbitrarily (if this were Unix, then luxconsole responding to a HUP signal or somesuch would be easy -- not sure how best to 'signal' a Windows app). 3) what exactly is the frequency that -W is supposed to dump the film file out at on the slave, and is there any way to influence it? I know from the file last being dumped at 4:40AM (when the master laptop was still at home with no connectivity to the slave) that it must dump it on its own on some periodic basis, and not only when the master sends it a command to retrieve the current samples.

And a feature suggestion: It would be nice to see a command line option added to luxconsole (and I suppose luxrender as well) to have it automatically reduce itself to low priority. As it is now, the first thing I do whenever I start it up is go into task manager to manually lower its priority so it doesn't comepletely destroy the box.

Thanks!
cwichura
 
Posts: 375
Joined: Sun Feb 12, 2012 11:31 pm

Re: luxconsole suggestions

Postby cwichura » Wed Feb 22, 2012 4:49 pm

Sigh. IS pushed out changes that forced the slave box to reboot during the middle of the day. :( So all I have is the file from 4:40AM. However, the results of trying to merge that with the master's current state using luxmerge didn't work. The file it created was smaller than the current master's file, and when loading it up, it was seen as corrupt and the scene started recalculating from scratch. Fortunately, I kept the original master's film file, so was able to recover. But it's a shame that so much compute time on this scene I've been working on got lost... :(
cwichura
 
Posts: 375
Joined: Sun Feb 12, 2012 11:31 pm

Re: luxconsole suggestions

Postby Dade » Thu Feb 23, 2012 6:24 am

Is you laptop useing a wired connection or WiFi ? I ask because WiFi is often a source of many problems with the HUGE size LuxRender films.
User avatar
Dade
Developer
 
Posts: 4854
Joined: Sat Apr 19, 2008 6:04 pm
Location: Italy

Re: luxconsole suggestions

Postby cwichura » Thu Feb 23, 2012 10:35 am

Wired Ethernet in the office. The laptop and slave are even connected to the same physical Cisco switch. The film file for the scene I am working on is currently just shy of 1GB in size on the master, FWIW.
cwichura
 
Posts: 375
Joined: Sun Feb 12, 2012 11:31 pm

Previous

Return to Architecture & Design

Who is online

Users browsing this forum: No registered users and 1 guest