I’m not sure if it’s possible but I’m looking to reduce the time it takes for a job to initialise. Within the job reports we are finding each job is taking around 4 seconds to load the plugin before the rendering starts which really adds up!
is it possible to keep a plugin loaded to avoid reloading it upon every job? Or is reloading the plugin required?
Here is an example of the start of each job.
2019-01-23 21:24:10: 0: Loading Job's Plugin timeout is Disabled
2019-01-23 21:24:12: 0: Executing plugin command of type 'Sync Files for Job'
2019-01-23 21:24:12: 0: All job files are already synchronized
2019-01-23 21:24:12: 0: Synchronizing Plugin Corona from C:\DeadlineRepository10\plugins\Corona took: 0 seconds
2019-01-23 21:24:12: 0: Done executing plugin command of type 'Sync Files for Job'
2019-01-23 21:24:12: 0: Executing plugin command of type 'Initialize Plugin'
2019-01-23 21:24:12: 0: INFO: Executing plugin script 'C:\Users\slave123\AppData\Local\Thinkbox\Deadline10\slave\ slave123\plugins\5c48db791fcb3439a8b33088\Corona.py'
2019-01-23 21:24:13: 0: INFO: About: Corona Standalone Render Plugin for Deadline
2019-01-23 21:24:13: 0: INFO: Render Job As User disabled, running as current user 'Adam'
2019-01-23 21:24:13: 0: INFO: The job's environment will be merged with the current environment before rendering
2019-01-23 21:24:13: 0: Done executing plugin command of type 'Initialize Plugin'
The answer is technically “yes” but it will only work for what are called “Advanced Plugins”. The problem here is that they work fundamentally differently than what Corona would allow you to do.
You might find an even bigger savings would be to set the number of frames Corona renders to something larger than 1 if you’re not already. That will save not only the plugin reload cycle but also Corona’s load time for itself and the scene. The ideal balance for “frames per task” would be the number of frames to render, divided by the machines available to render the job. The downside being if a single frame needs to be requeued, you would want to let the job finish then change the “frames per task” setting.
If you’re doing single frame jobs neither advanced plugins nor frames per task will help you here.
Thank you for the quick response.
We are exclusively rendering single frame jobs , although the preloading section within the Advanced Plugins intrigues me, perhaps there is time to be saved while the geometry and assets are downloading.
It would take significant engineering on your side, but if you dare to do it the page I linked before will get you there.
You’d also need to override our executable handling as the advanced plugins normally fail the job if the application quits unexpectedly and the simple plugins are the opposite: They’ll wait until the application is closed before moving on.
You might gain more from looking for other bottlenecks in the system. I can talk to the team about the performance of that startup time though.