Hi, I have an issue with batch redshift rendering using PDG and local scheduler.
PDG local scheduler assigns redshift with a new rendertask before current one is finished, as a result some frames are lost.
Job is set to the ‘single’ and redshift really is assigned with only one workitem at time, however arrording to GPU load redshift is often assigned with a new workitem in the middle of current rendering job and due to subsequent GPU load pattern, redshift ignores this new assigned workitem and continues rendering current one.
When all workitems in ropfetch node are processed (but only about a half images is rendered and written to disk), render process and GPU load is terminated.
Queue jumping is different each time the network is dirtied and recooked, however first workitems are often processed without jumping ahead (or at least without big jumping ahead) and probability of queue jumping increases over time so the last workitems often are assigned up to 10 times faster than the duration of of single workitem rendering.
It seems that local scheduler doesn't handle correctly feedback from redshift about render finish event and decides that redshift is already free while rendering is still in process.
I used:
-houdini 17.5 builds 268, 293, 327;
-redshift 2.6.44, 3.0.0.5;
I tried:
-set job to ‘single’ in localscheduler as well as in ropfetch as well as both;
-use ropfetch in a loop;
-set ‘non-blocking current frame rendering’
-different combinations of settings of ‘max cpus’, ‘cpus per thread’, ‘max threads’
all unsuccessful.
Currently I'm not too deep into pdg tasks and events system but I think that since redshift can execute ‘pre render’ and ‘post render’ scripts in hscript or python, there may be a way to make intermediary scripted processor that copies all workitems for rendering from upstream node and sets their state to ‘scheduled’, then sets first workitem state to ‘cooking’, then launches redshift render and when render is done - redshift post-render script tells scripted processor to change workitem state to ‘cooked’ and to repeat this procedure with next workitem.
Maybe there is some easier way to solve this problem, or if the only way is to make a scripted processor (or even a scripted scheduler) I would appreciate any help with its code or example/tutorial related to ‘manual’ interaction between pdg and renderer, since I haven't found any.