Calculating task completion estimates
Verfasst: 01.03.2016 17:55
Hey folks!
I've been doing some research on calculating estimates for my "monster" VM tasks, and I thought I'd share a bit of the methodology, so that you could also easily calculate task completion estimates for your own tasks! Additionally, below I'll be tracking my tasks, and probably updating this post occasionally, to edit the task progress and (hopefully) completion statuses. So let's get started!
Gather info that is available to you:
1) All RNA World VM work units have a "estimated runtime on reference system" value, with a hyperlink that shows details for the "reference system". Just click a work unit, and it'll be listed above all of the task attempts.
2) You can click any computer ID to get details about it, including: "CPU type" (the CPU name), and "Measured floating point speed" (Measured FLOPS). It's useful to gather this info for: Your own CPUs, the reference system CPU, and wingmen CPUs (CPUs that have "Completed" the same work unit).
3) You can look up the processor details on websites, to determine the number of cores and threads for each CPU. I use CPU Boss (http://cpuboss.com/compare-cpus) to do this.
4) You can look up the PassMark scores for the CPUs. I go here (http://www.cpubenchmark.net/), find the CPU on one of the first 4 charts listed, then get the value - called the "CPU Mark" (which is the score when fully loaded across all threads). Then I click the "Single Thread CPU Chart" toward the bottom right, find the CPU on it, then get the value - called the "Single thread mark" (the score when just a single thread is running).
5) You can additionally calculate a Passmark score for "per thread", by dividing the "CPU Mark" by the number of threads the CPU can handle.
See the first couple of blocks in my "report" below, to see how I formatted/structured it all.
Now that you have the data, you can do comparisons! For instance, you can calculate an estimate of how long a task might take, based on the estimate given for the "estimated runtime on reference system". Or you can calculcate an estimate based on the results of a wingman! See how much CPU time it took a wingman to complete the task, then use it in your own calculations to create estimates for your CPU!
The formula is:
(Their performance value) / (Your performance value) * (Their CPU time spent)
You can actually calculate 5 different estimates, by using different values for (Their performance value) and (Your performance value). This is particularly useful, because you don't know whether that other system was running just 1 thread, or was fully loaded. And you might also want to see how the estimate would change, if your own system was running just 1 thread, or was fully loaded.
You can calculate these 5 estimates:
- Their per-thread-mark, vs your single-thread-mark
- Their single-thread-mark, vs your single-thread-mark
- Their per-thread-mark, vs your per-thread-mark
- Their single-thread-mark, vs your per-thread-mark
- Their measured FLOPS, vs your measured FLOPS
Note: Once you have a "seconds" value, you can easily convert it into a "Day and time" value by using my attached Excel file, if you'd like. My findings:
- The VM task itself gives an estimate. Click "Show VM Console", and be very careful not to type anything into the "VM Console" window that pops up! Then, write down the estimate in a text editor or on paper, and then close the "VM Console window. I call this the "VM Console estimate". This is based on cmsearch forecast data, a quick prediction of current-system-performance, which is known to be very unreliable. Basically, it's nice to note what that estimate is, but it's probably pretty useless.
- The "estimated runtime on reference system" values, are also not accurate. The wingmen have proven that the estimate wasn't in the ballpark of where it should be. I suspect that it's just the forecast values based on the reference system, so it's also probably pretty useless.
- The slot folder has a shared folder that has a "progress.txt" file, which the VM writes to, every minute or so. It's a fraction that increases from 0 to 1, and it's based on how long the VM has ran, compared to some multiple of the "VM Console estimate". If it gets close to 1, the RNA World application is designed to "lock it" at 0.98765, or 98.765%. So, if you see that value of 98.765% in the UI, don't worry, just let it keep going - the task will finish eventually, despite not seeing any progress advance!
- BOINC is supposed to use this "progress.txt" value, and show it as the Progress % in the UI, though a progress-display-bug in v1.15 tasks made it use a totally different approximation, and a progress-display-bug in v1.16 tasks made it show 0.1% constantly. You can still complete tasks from those versions just fine (don't abort them!), though I believe v1.17 finally fixed it to show correctly in the UI. However...
- Since the "progress.txt" value, and the Progress % UI value, are both based on forecast data, they are also probably pretty useless.
- Estimates based off of wingmen completion times (when available), may be the best to use, to get a range of how long the task should take on your CPU!
Below are my calculations for my 7-in-progress tasks. 2 of them have wingmen that have completed them, on very fast CPUs! However, when I do the estimates for my lowly laptops, I see that the worst-case-estimate is 906 days for one of them! That 906 day estimate ... is a long time to run a task without a problem, and isn't really fair to wingmen who are waiting. So, I've actually made a change to my BOINC philosophy recently.
Setting suggestion:
Previously, I'd run BOINC at "Use at most 100% of the CPUs", to keep the hyperthreaded logical CPUs fully loaded. But, in order to increase the speed the RNA World VM tasks can be completed, while also keeping the cores themselves loaded, I've decided to "Use at most 50% of the CPUs" on hyperthreaded CPUs that have an RNA World VM task. My logic is that, while fully loading a hyperthreaded PC may yield a 0-30% boost in task throughput, it's also guaranteed to make a given task take longer to complete, possibly nearly twice as long! I made the change because I personally can't justify the risks of making the RNA World VM tasks take that much longer. Note: When a PC doesn't have any RNA World VM tasks, I'll likely set it back to "Use at most 100% of the CPUs". I'd love to hear any feedback/opinions on this.
My data (will be updated occasionally - last update 3/1/2016):
I've been doing some research on calculating estimates for my "monster" VM tasks, and I thought I'd share a bit of the methodology, so that you could also easily calculate task completion estimates for your own tasks! Additionally, below I'll be tracking my tasks, and probably updating this post occasionally, to edit the task progress and (hopefully) completion statuses. So let's get started!
Gather info that is available to you:
1) All RNA World VM work units have a "estimated runtime on reference system" value, with a hyperlink that shows details for the "reference system". Just click a work unit, and it'll be listed above all of the task attempts.
2) You can click any computer ID to get details about it, including: "CPU type" (the CPU name), and "Measured floating point speed" (Measured FLOPS). It's useful to gather this info for: Your own CPUs, the reference system CPU, and wingmen CPUs (CPUs that have "Completed" the same work unit).
3) You can look up the processor details on websites, to determine the number of cores and threads for each CPU. I use CPU Boss (http://cpuboss.com/compare-cpus) to do this.
4) You can look up the PassMark scores for the CPUs. I go here (http://www.cpubenchmark.net/), find the CPU on one of the first 4 charts listed, then get the value - called the "CPU Mark" (which is the score when fully loaded across all threads). Then I click the "Single Thread CPU Chart" toward the bottom right, find the CPU on it, then get the value - called the "Single thread mark" (the score when just a single thread is running).
5) You can additionally calculate a Passmark score for "per thread", by dividing the "CPU Mark" by the number of threads the CPU can handle.
See the first couple of blocks in my "report" below, to see how I formatted/structured it all.
Now that you have the data, you can do comparisons! For instance, you can calculate an estimate of how long a task might take, based on the estimate given for the "estimated runtime on reference system". Or you can calculcate an estimate based on the results of a wingman! See how much CPU time it took a wingman to complete the task, then use it in your own calculations to create estimates for your CPU!
The formula is:
(Their performance value) / (Your performance value) * (Their CPU time spent)
You can actually calculate 5 different estimates, by using different values for (Their performance value) and (Your performance value). This is particularly useful, because you don't know whether that other system was running just 1 thread, or was fully loaded. And you might also want to see how the estimate would change, if your own system was running just 1 thread, or was fully loaded.
You can calculate these 5 estimates:
- Their per-thread-mark, vs your single-thread-mark
- Their single-thread-mark, vs your single-thread-mark
- Their per-thread-mark, vs your per-thread-mark
- Their single-thread-mark, vs your per-thread-mark
- Their measured FLOPS, vs your measured FLOPS
Note: Once you have a "seconds" value, you can easily convert it into a "Day and time" value by using my attached Excel file, if you'd like. My findings:
- The VM task itself gives an estimate. Click "Show VM Console", and be very careful not to type anything into the "VM Console" window that pops up! Then, write down the estimate in a text editor or on paper, and then close the "VM Console window. I call this the "VM Console estimate". This is based on cmsearch forecast data, a quick prediction of current-system-performance, which is known to be very unreliable. Basically, it's nice to note what that estimate is, but it's probably pretty useless.
- The "estimated runtime on reference system" values, are also not accurate. The wingmen have proven that the estimate wasn't in the ballpark of where it should be. I suspect that it's just the forecast values based on the reference system, so it's also probably pretty useless.
- The slot folder has a shared folder that has a "progress.txt" file, which the VM writes to, every minute or so. It's a fraction that increases from 0 to 1, and it's based on how long the VM has ran, compared to some multiple of the "VM Console estimate". If it gets close to 1, the RNA World application is designed to "lock it" at 0.98765, or 98.765%. So, if you see that value of 98.765% in the UI, don't worry, just let it keep going - the task will finish eventually, despite not seeing any progress advance!
- BOINC is supposed to use this "progress.txt" value, and show it as the Progress % in the UI, though a progress-display-bug in v1.15 tasks made it use a totally different approximation, and a progress-display-bug in v1.16 tasks made it show 0.1% constantly. You can still complete tasks from those versions just fine (don't abort them!), though I believe v1.17 finally fixed it to show correctly in the UI. However...
- Since the "progress.txt" value, and the Progress % UI value, are both based on forecast data, they are also probably pretty useless.
- Estimates based off of wingmen completion times (when available), may be the best to use, to get a range of how long the task should take on your CPU!
Below are my calculations for my 7-in-progress tasks. 2 of them have wingmen that have completed them, on very fast CPUs! However, when I do the estimates for my lowly laptops, I see that the worst-case-estimate is 906 days for one of them! That 906 day estimate ... is a long time to run a task without a problem, and isn't really fair to wingmen who are waiting. So, I've actually made a change to my BOINC philosophy recently.
Setting suggestion:
Previously, I'd run BOINC at "Use at most 100% of the CPUs", to keep the hyperthreaded logical CPUs fully loaded. But, in order to increase the speed the RNA World VM tasks can be completed, while also keeping the cores themselves loaded, I've decided to "Use at most 50% of the CPUs" on hyperthreaded CPUs that have an RNA World VM task. My logic is that, while fully loading a hyperthreaded PC may yield a 0-30% boost in task throughput, it's also guaranteed to make a given task take longer to complete, possibly nearly twice as long! I made the change because I personally can't justify the risks of making the RNA World VM tasks take that much longer. Note: When a PC doesn't have any RNA World VM tasks, I'll likely set it back to "Use at most 100% of the CPUs". I'd love to hear any feedback/opinions on this.
My data (will be updated occasionally - last update 3/1/2016):
Code: Alles auswählen
================================================================================================================================================
Web reference CPU:
================================================================================================================================================
AMD Athlon(tm) II X2 250 Processor
Cores / Threads: 2 / 2
Passmark score (total): 1,768
Passmark score (per thread): 884 (1,768 / 2)
Passmark score (single thread): 1,012
Measured FLOPS: 3664.35 million ops/sec
================================================================================================================================================
My CPUs:
================================================================================================================================================
Intel(R) Core(TM) i7 CPU 965 @ 3.20GHz
Cores / Threads: 4 / 8
Passmark score (total): 5,902
Passmark score (per thread): 738 (5,902 / 8)
Passmark score (single thread): 1,376
Overclocked Passmark score (total): 6,545 (5,902 * 28 / 25.25)
Overclocked Passmark score (per thread): 818 (6,545 / 8)
Overclocked Passmark score (single thread): 1,482 (1,376 * 28 / 26)
Overclocked Measured FLOPS: 3818.57 million ops/sec
Intel(R) Core(TM) i7 CPU Q 740 @ 1.73GHz
Cores / Threads: 4 / 8
Passmark score (total): 3,231
Passmark score (per thread): 404 (3,231 / 8)
Passmark score (single thread): 914
Measured FLOPS: 1782.02 million ops/sec
Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz
Cores / Threads: 2 / 4
Passmark score (total): 2,401
Passmark score (per thread): 600 (2,401 / 4)
Passmark score (single thread): 1,059
Measured FLOPS: 2767.4 million ops/sec
================================================================================================================================================
Wingmen CPUs:
================================================================================================================================================
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
Cores / Threads: 4 / 8
Passmark score (total): 9,340
Passmark score (per thread): 1,168 (9,340 / 8)
Passmark score (single thread): 2,068
Measured FLOPS: 4158.28 million ops/sec
Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz
Cores / Threads: 6 / 12
Passmark score (total): 13,051
Passmark score (per thread): 1,088 (13,051 / 12)
Passmark score (single thread): 1,993
Measured FLOPS: 3822.91 million ops/sec
================================================================================================================================================
RACERX TASKS: Intel(R) Core(TM) i7 CPU 965 @ 3.20GHz
================================================================================================================================================
Slot: 18
Name: cmsvm_GA-p[e30-50MB_Lin64f]_1_Bos-taurus-(cattle)_CM000204.lin.EMBL_RF00028_Intron_gpI_1330438623_5516_50
Web workunit: 6330877
Web link: http://www.rnaworld.de/rnaworld/workunit.php?wuid=6330877
Web reference: AMD Athlon(tm) II X2 250 Processor -- 128d 1:00:45 -- 18w 2d 1h 0m 45s (11062845.10969 s)
Web est. PM 1: 76d 9:01:30 -- 6598890 s -- (884 / 1,482) * time
Web est. PM 2: 87d 10:26:25 -- 7554385 s -- (1,012 / 1,482) * time
Web est. PM 3: 138d 8:57:26 -- 11955446 s -- (884 / 818) * time
Web est. PM 4: 158d 9:49:12 -- 13686552 s -- (1,012 / 818) * time
Web est. FLOPS: 122d 20:54:12 -- 10616052 s -- (3664.35 / 3818.57) * time
VM Console estimate: 209d 11:18:40 -- 18098320 s
Progress: 120d -- 1/30/2016
125d -- 2/7/2016 -- UI 66.6%, progress.txt 0.593094
130d -- 2/14/2016 -- UI 68.122%, progress.txt 0.618427
134d -- 2/20/2016 -- UI 69.102%, progress.txt 0.635431
138d -- 2/26/2016 -- UI 70.086%, progress.txt 0.652946
141.7d -- 3/1/2016 -- UI 71.024%, progress.txt 0.670244
Slot: 17
Name: cmsvm_GA-p[e20-30MB_Lin64f]_1_Equus-caballus-(horse)_CM000407.lin.EMBL_RF00028_Intron_gpI_1349111823_34328_28
Web workunit: 6330712
Web link: http://www.rnaworld.de/rnaworld/workunit.php?wuid=6330712
Web reference: AMD Athlon(tm) II X2 250 Processor -- 69d 12:18:00 -- 9w 6d 12h 18m 0s (6005880.4761244 s)
Web est. PM 1: 41d 11:07:35 -- 3582455 s -- (884 / 1,482) * time
Web est. PM 2: 47d 11:13:02 -- 4101182 s -- (1,012 / 1,482) * time
Web est. PM 3: 75d 2:54:23 -- 6490463 s -- (884 / 818) * time
Web est. PM 4: 85d 23:57:38 -- 7430258 s -- (1,012 / 818) * time
Web est. FLOPS: 66d 16:55:22 -- 5763322 s -- (3664.35 / 3818.57) * time
VM Console estimate: 49d 9:11:03 -- 1185:11:03.08
Progress: 19d -- 1/30/2016
24d -- 2/7/2016 -- UI 32.7%, progress.txt 0.98765
30d -- 2/14/2016 -- UI 38.267%, progress.txt 0.98765
33d -- 2/20/2016 -- UI 41.708%, progress.txt 0.98765
37d -- 2/26/2016 -- UI 45.080%, progress.txt 0.98765
40.8d -- 3/1/2016 -- UI 48.223%, progress.txt 0.98765
Slot: 25
Name: cmsvm2_GA-p[e20-30MB_Lin64f]_1_Oryza-sativa-Japonica-Group_CM000146.lin.EMBL_RF00028_Intron_gpI_1349111823_63140_45
Web workunit: 6330853
Web link: http://www.rnaworld.de/rnaworld/workunit.php?wuid=6330853
Web reference: AMD Athlon(tm) II X2 250 Processor -- 54d 10:05:45 -- 7w 5d 10h 5m 45s (4701944.6466938 s)
Web est. PM 1: 32d 11:04:29 -- 2804669 s -- (884 / 1,482) * time
Web est. PM 2: 37d 3:52:55 -- 3210775 s -- (1,012 / 1,482) * time
Web est. PM 3: 58d 19:28:39 -- 5081319 s -- (884 / 818) * time
Web est. PM 4: 67d 7:51:16 -- 5817076 s -- (1,012 / 818) * time
Web est. FLOPS: 52d 5:20:48 -- 4512048 s -- (3664.35 / 3818.57) * time
VM Console estimate: 53d 5:37:38 -- 4599458 s
Progress: 50d -- 1/30/2016
55d -- 2/7/2016 -- UI 68.0%, progress.txt 0.98765
60d -- 2/14/2016 -- UI 71.322%, progress.txt 0.98765
64d -- 2/20/2016 -- UI 73.343%, progress.txt 0.98765
67d -- 2/26/2016 -- UI 75.296%, progress.txt 0.98765
71.6d -- 3/1/2016 -- UI 77.092%, progress.txt 0.98765
================================================================================================================================================
NITRO TASKS: Intel(R) Core(TM) i7 CPU Q 740 @ 1.73GHz
================================================================================================================================================
Slot: 11
Name: cmsvm2_GA-p[e30-50MB_Lin64f]_1_Gallus-gallus-(chicken)_CM000098.lin.EMBL_RF00028_Intron_gpI_1330438623_52164_42
Web workunit: 6330811
Web link: http://www.rnaworld.de/rnaworld/workunit.php?wuid=6330811
Web reference: AMD Athlon(tm) II X2 250 Processor -- 104d 16:31:23 -- 14w 6d 16h 31m 23s (9045083.2575512 s)
Web est. PM 1: 101d 6:03:19 -- 8748199 s -- (884 / 914) * time
Web est. PM 2: 115d 21:55:06 -- 10014906 s -- (1,012 / 914) * time
Web est. PM 3: 229d 1:41:57 -- 19791717 s -- (884 / 404) * time
Web est. PM 4: 262d 5:44:46 -- 22657486 s -- (1,012 / 404) * time
Web est. FLOPS: 215d 6:28:35 -- 18599315 s -- (3664.35 / 1782.02) * time
VM Console estimate: 158d 2:09:37 -- 13658977 s
-----NOTE-----: Completed by wingman -- Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz -- CPU Time: 13,374,520.00 -- 154d 19:08:40
Wingman est. PM 1: 197d 19:34:50 -- 17091290 s -- (1,168 / 914) * time
Wingman est. PM 2: 350d 5:49:09 -- 30260949 s -- (2,068 / 914) * time
Wingman est. PM 3: 447d 12:48:49 -- 38666929 s -- (1,168 / 404) * time
Wingman est. PM 4: 792d 9:07:32 -- 68461652 s -- (2,068 / 404) * time
Wingman est. FLOPS: 361d 5:09:25 -- 31208965 s -- (4158.28 / 1782.02) * time
Progress: 117d -- 2/7/2016 -- UI 43.5%, progress.txt 0.737220
124d -- 2/14/2016 -- UI 45.378%, progress.txt 0.779959
130d -- 2/20/2016 -- UI 46.921%, progress.txt 0.816924
135d -- 2/26/2016 -- UI 48.207%, progress.txt 0.848531
139.3d -- 3/1/2016 -- UI 49.177%, progress.txt 0.872930
Slot: 17
Name: cmsvm_GA-p[e30-50MB_Lin64f]_1_Canis-lupus-familiaris-(dog)_CM000031.lin.EMBL_RF00028_Intron_gpI_1330438623_13748_11
Web workunit: 6341780
Web link: http://www.rnaworld.de/rnaworld/workunit.php?wuid=6341780
Web reference: AMD Athlon(tm) II X2 250 Processor -- 119d 12:48:07 -- 17w 0d 12h 48m 7s (10327687.065874 s)
Web est. PM 1: 115d 14:38:24 -- 9988704 s -- (884 / 914) * time
Web est. PM 2: 132d 8:23:52 -- 11435032 s -- (1,012 / 914) * time
Web est. PM 3: 261d 13:16:46 -- 22598206 s -- (884 / 404) * time
Web est. PM 4: 299d 10:12:25 -- 25870345 s -- (1,012 / 404) * time
Web est. FLOPS: 245d 19:05:20 -- 21236720 s -- (3664.35 / 1782.02) * time
VM Console estimate: 370d 4:50:07 -- 31985407 s
Progress: 192d -- 2/7/2016 -- UI 55.9%, progress.txt 0.508650
199d -- 2/14/2016 -- UI 57.134%, progress.txt 0.526883
205d -- 2/20/2016 -- UI 58.196%, progress.txt 0.542633
210d -- 2/26/2016 -- UI 59.084%, progress.txt 0.556108
214.0d -- 3/1/2016 -- UI 59.755%, progress.txt 0.566499
================================================================================================================================================
ZATHRAS TASKS: Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz
================================================================================================================================================
Slot: 4
Name: cmsvm2_GA-p[e20-30MB_Lin64f]_1_Oryza-sativa-Japonica-Group_CM000147.lin.EMBL_RF00028_Intron_gpI_1349111823_64512_41
Web workunit: 6330855
Web link: http://www.rnaworld.de/rnaworld/workunit.php?wuid=6330855
Web reference: AMD Athlon(tm) II X2 250 Processor -- 56d 21:07:48 -- 8w 0d 21h 7m 48s (4914467.536505 s)
Web est. PM 1: 47d 11:32:31 -- 4102351 s -- (884 / 1,059) * time
Web est. PM 2: 54d 8:32:36 -- 4696356 s -- (1,012 / 1,059) * time
Web est. PM 3: 83d 19:17:29 -- 7240649 s -- (884 / 600) * time
Web est. PM 4: 95d 22:31:09 -- 8289069 s -- (1,012 / 600) * time
Web est. FLOPS: 75d 7:35:10 -- 6507310 s -- (3664.35 / 2767.4) * time
VM Console estimate: 142d 20:57:20 -- 12344240 s
-----NOTE-----: Was completed via Nitro and RacerX, 2 times... 231d, and 298.2d
Progress: 169d -- 2/7/2016 -- UI 90.3%, progress.txt 0.98765
176d -- 2/14/2016 -- UI 91.135%, progress.txt 0.98765
182d -- 2/20/2016 -- UI 91.823%, progress.txt 0.98765
187d -- 2/26/2016 -- UI 92.400%, progress.txt 0.98765
191.7d -- 3/1/2016 -- UI 92.798%, progress.txt 0.98765
Slot: 7
Name: cmsvm_GA-p[e30-50MB_Lin64f]_1_Oryza-sativa-Japonica-Group_CM000138.lin.EMBL_RF00028_Intron_gpI_1330438623_83720_34
Web workunit: 6330883
Web link: http://www.rnaworld.de/rnaworld/workunit.php?wuid=6330883
Web reference: AMD Athlon(tm) II X2 250 Processor -- 126d 9:17:04 -- 18w 0d 9h 17m 4s (10919824.335012 s)
Web est. PM 1: 105d 12:02:01 -- 9115321 s -- (884 / 1,059) * time
Web est. PM 2: 120d 18:39:46 -- 10435186 s -- (1,012 / 1,059) * time
Web est. PM 3: 186d 5:02:21 -- 16088541 s -- (884 / 600) * time
Web est. PM 4: 213d 4:08:24 -- 18418104 s -- (1,012 / 600) * time
Web est. FLOPS: 167d 8:24:40 -- 14459080 s -- (3664.35 / 2767.4) * time
VM Console estimate: 182d 13:37:43 -- 15773863 s
-----NOTE-----: Completed by wingman -- Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz -- CPU Time: 23,582,650.00 -- 272d 22:44:10
Wingman est. PM 1: 280d 10:07:25 -- 24228445 s -- (1,088 / 1,059) * time
Wingman est. PM 2: 494d 22:40:05 -- 42763205 s -- (1,088 / 600) * time
Wingman est. PM 3: 513d 16:15:01 -- 44381701 s -- (1,993 / 1,059) * time
Wingman est. PM 4: 906d 15:21:42 -- 78333702 s -- (1,993 / 600) * time
Wingman est. FLOPS: 377d 1:14:34 -- 32577274 s -- (3822.91 / 2767.4) * time
Progress: 159d -- 2/7/2016 -- UI 62.7%, progress.txt 0.850912
166d -- 2/14/2016 -- UI 64.253%, progress.txt 0.887791
172d -- 2/20/2016 -- UI 65.530%, progress.txt 0.919677
177d -- 2/26/2016 -- UI 66.648%, progress.txt 0.948510
181.7d -- 3/1/2016 -- UI 67.443%, progress.txt 0.969637