I apologize for the delay, I have busy with other projects. I ran a few tests and here are the results:
My test server 8 cores 3.0 GHz, 32 GB ram, 6 physical 2TB hdd's, non-raided.
Each instance is:
Encoding Method..............: RS32_DFT
Number of Data Volumes.......: 475620
Number of Recovery Volumes...: 47562
Total Size...................: 14,744,202,241
Recovery Size................: 1,523,576,916
Overall Size.................: 16,267,779,157
Size of Volume...............: 31,000
Size of Buffer...............: 1,736 (5.6%)
Volume Alignment.............: Not Available
Redundancy...................: 10%
Header Redundancy............: 5
Efficiency...................: 96.77%
Transform Efficiency.........: 99.79%
Memory Required..............: 991,966,360
Number of Threads............: 4
SSE2 Support.................: Enabled
Sizing Scheme................: 10 Equal Files
Run 1 instance 4 times: 37min 36 sec, fastest individual time was 9 min, 20 sec
Run 2 instances 2 times: 21min 2 sec, fastest individual time was 10 min, 19 sec
Run 4 instances 1 time: 14min 2 sec, fastest individual time was 13 min, 34 sec
These times do not include creating the hash tables.
Using the
same drive for multiple swap stores was devastating to the overall time. It stalls many times. If, more than 1 additional physical drive is not available, then do not run more than 1 instance.
I tested only physical drives. It would be interesting to test on zfs or hardware raid.
With my server I could probably run 5 instances, that would put utilization at 100%, any more would probably not show any increase in overall speed.
@persicum:
If you were to rebuild your app that would separate the tasks to separate exe's, (or add arguments) then my gui could limit the swapping to 1 instance and up to 1 instance per 2 cores. That might make it possible to run multiple instances with only 1 additional drive.
I still need to figure out how to redirect stdoutput, then I will have something for you.