BD Rebuilder Multi-process Encoding
Implemented in BD-RB v0.40.1 -- January 27th, 2012
First, take warning:
This is an experimental feature. While I believe it should work correctly in most circumstances -- being a completely new function increases the likelihood that new bugs or problems might arise. If you aren't game for some bug testing and reporting, you may want to wait until the feature is more mature and is fully tested (in a future release) before trying it.
Multi-process encoding is a new feature I've added to BD Rebuilder in order to take advantage of some of the newer high-speed processors (generally 4 cores and above). If you have one of these processors you may have noticed that BD-RB can sometimes use less than 100% of the processor. This is often due to the fact that the video frame-serving cannot keep up with the encoding speed of your system. Multi-process encoding addresses that circumstance by dividing the encoding task into smaller chunks -- and then running multiple instances of X264 concurrently.
Will you benefit from this new feature?
The best way to find out is to try it. But, if your encodes are running at less than 100% processor utilization, it is very likely you will see speed increases. Note, however, that if this isn't the case, and your processor is already running at its maximum capacity -- it's also possible that enabling the multi-process feature might actually slow your encodes. This is because of a small additional time allocation (5-10min) that is required to divide the task into chunks while remaining frame-accurate and then combine them upon completion. As computers continue to evolve, I expect this feature will eventually be useful to everyone.
How do I enable it?
Currently multi-processing is enabled via a "hidden" switch in the CONFIG/INI file (accessible from the FILE menu). After it has been tested more thoroughly it will be added to the SETUP dialog. For now you must add it to the "[Options]" area of the configuration file like this:
"n" represents a number between 0 and 16. Setting MULTIPROCESS to "0" (the default) disables all multiprocessing and BD Rebuilder continues to operate the way it did in previous releases. Setting it to "1" enables automatic mode -- in this mode BD Rebuilder will use a number of concurrent processes it believes to be most optimal for the number of processors and memory present on your computer. Setting MULTIPROCESS to a greater value indicates "manual mode". BD-RB will run the number of concurrent X264 processes you've specified. Please note that currently anything over 4 is probably likely to show diminished performance. I would also recommend you avoid more than 2-3 if you have 4GB or less of RAM memory on your system. You might find yourself chugging along very slowly if memory your system starts swapping to disc.
If reports indicate a benefit or if system performance Increases dictate, I will increase the maximum – but that’s unlikely for a while.
+-- Multiprocessing in disabled
+-- BD Rebuilder will decide and set the number of concurrent processes.
+-- BD Rebuilder will run 3 concurrent X264 processes for each encode.
Please note: There are certain settings that will disallow multi-processing. This includes "Use X264's internal LAVF", and during CRF prediction. Also, any resizing (e.g. some ALTERNATE settings) seem to have an unexpected negative impact on speed – so resizing currently automatically disables multiprocessing. It could be I can get around this by using X264’s internal resizing -- as I research it you may see that change in future releases.
Hope you find this feature useful... remember to post any and all bug reports in the bug reporting thread at DOOM9:
Also -- I ask that you remember that BD Rebuilder is completely dependent upon voluntary donations -- I'd like to keep it that way. Please consider clicking on the "HELP/Development Donations" menu option and sending a few bucks my way. It would be greatly appreciated.
Thanks for supporting BD Rebuilder,