-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
For large files, big difference to ParPar and MultiPar? #23
Comments
As you may have discovered, the block count has a significant effect on the performance (as well as how recovery works), so for a comparison that actually makes sense, you need to ensure the block count/size is consistent across all applications. Since you're using a 4MB block for ParPar (first two tests), you'll need to add (the significance of this option is a reason why I'm reluctant to automatically choose some default, as it leads to people not understanding how much of an impact it plays) Another option that can affect performance would be the allowed memory usage (
Other than that mentioned above, the defaults are usually sensible. If you want to experiment, you can try playing around with the number of threads, as a lower number (i.e. num threads = num CPU cores) might work slightly better or worse. MultiPar and ParPar have a number of tunables if you want to experiment further. In particular, enabling GPU/OpenCL processing might help if you have a powerful GPU. |
Thank you very much! I think ParPar is theoretically the fastest option of all. Then I wrote this function for myself - that's the gist of what I had in mind.
What influence does too small a block size have on very large files or many parts, and vice versa? I would like to always get the best value of the block size with 10% recovery based on the source file/part size. |
There's no "right" or "best" block size, which is why it's exposed as an option. The general gist is:
So size is generally a tradeoff between performance and recoverability. |
Memory Usage : 3568.05 MiB I have also noticed that the higher the block size, the faster the PAR2 files are created. But I think that's exactly right. Block size 0,5M: 22:26min |
The option is an upper limit - ParPar can choose to use less. More specifically, the memory is used to hold recovery data, so since you're generating 6944MB of recovery in the above example, it'll never use more than that. |
I have noticed an inconsistency that I do not understand.
Test 1
1 GB .rar-Files, ~3,07 GB
Test 2
1 GB .rar-Files, ~70 GB
Where does this diskeprancy come from?
Another test (even more confusing):
Test 3
1 GB .rar-Files, ~70 GB
6 Cores, 12 Threads a 4 Ghz, 32 GB-RAM. NVMe SSD.
CPU load while par2 calculating: ~90%.
Do you have any performance tips for me?
My source files vary from 50 MB to 100 GB. Shouldn't I rather make -s dynamic, or is that not necessary?
The text was updated successfully, but these errors were encountered: