From: Kevin Sallee <kevinsallee@(email surpressed)> Subject: simple priority question Date: Thu, 27 Oct 2011 17:59:06 -0400 |
Msg# 2140 View Complete Thread (3 articles) | All Threads Last Next |
Hello: i have some jobs that are executed on my farm, and i would like
another job i'm sending to be executed only when all the other jobs i
sent are finished. how do i do that without specifying a dependency?
|
From: Greg Ercolano <erco@(email surpressed)> Subject: Re: simple priority question Date: Fri, 28 Oct 2011 12:09:44 -0400 |
Msg# 2141 View Complete Thread (3 articles) | All Threads Last Next |
On 10/27/11 14:59, Kevin Sallee wrote: > Hello: i have some jobs that are executed on my farm, and i would like > another job i'm sending to be executed only when all the other jobs i > sent are finished. how do i do that without specifying a dependency? Hi Kevin, Set the job to a lower priority than the others, and it shouldn't pick up unless the other jobs can't use any more cpus. (eg. if your job is @1 and the others are @2 or higher, those other jobs will always win cpus if they aren't constrained by some limit) This does mean, however, it may start rendering while the other jobs are still finishing their renders. If you really want that last job to start /only/ when the other jobs have /completely/ finished (and /not/ start even if there are cpus available but the other jobs are still working on rendering their last few frames), then 'waitfor <jobid> <jobid..>' would be the way to go, as that really is a dependency type of behavior. To get what you want without a dependency, I think you'd have to write a custom submit script that submits your job in the Pause state, and polls the network with 'rush -laj' until there are no Run jobs, then it would unpause the job to start it. I can suggest code that would do this, but it's an odd case. If you think that would be a handy feature, I could investigate adding such a thing. -- Greg Ercolano, erco@(email surpressed) Seriss Corporation Rush Render Queue, http://seriss.com/rush/ Tel: (Tel# suppressed)ext.23 Fax: (Tel# suppressed) Cel: (Tel# suppressed) |
From: Kevin Sallee <kevinsallee@(email surpressed)> Subject: Re: simple priority question Date: Thu, 03 Nov 2011 18:31:30 -0400 |
Msg# 2143 View Complete Thread (3 articles) | All Threads Last Next |
On 10/28/2011 11:09 AM, Greg Ercolano wrote: On 10/27/11 14:59, Kevin Sallee wrote:Hello: i have some jobs that are executed on my farm, and i would like another job i'm sending to be executed only when all the other jobs i sent are finished. how do i do that without specifying a dependency?Hi Kevin, Set the job to a lower priority than the others, and it shouldn't pick up unless the other jobs can't use any more cpus. (eg. if your job is @1 and the others are @2 or higher, those other jobs will always win cpus if they aren't constrained by some limit) This does mean, however, it may start rendering while the other jobs are still finishing their renders. If you really want that last job to start /only/ when the other jobs have /completely/ finished (and /not/ start even if there are cpus available but the other jobs are still working on rendering their last few frames), then 'waitfor<jobid> <jobid..>' would be the way to go, as that really is a dependency type of behavior. To get what you want without a dependency, I think you'd have to write a custom submit script that submits your job in the Pause state, and polls the network with 'rush -laj' until there are no Run jobs, then it would unpause the job to start it. I can suggest code that would do this, but it's an odd case. If you think that would be a handy feature, I could investigate adding such a thing. Hi greg,sorry i didn't see your answer before... I already found a workaround as you said, a little script that uses rush -lj. It's just i'm not sending rendering jobs but animation baking jobs. So i have this scene where you can bake animation for all assets, and then build a custom scene with all the rigged assets references switched to cached references. For the scene building, i want to wait for all the baking jobs to be finished. Since it's user-based, i used rush -lj instead of rush -laj. It's just using time.sleep if baking jobs (identified by their titles) sent by the user are not finished. It's really an odd case so no need to dig it much more. Thank you for your answer though Kevin |