![]() |
[QUOTE=UBR47K;413312]Trial factoring[/QUOTE]
:loco: hahaha, you went to 78 bits for a 40M? This is at least a gorgeous luck, or you invested a lot of resources into it... Anyhow, congrats! |
[QUOTE=VBCurtis;413305]The 100*B1 rule of thumb is for the lower-memory, slower, non-GMP-ECM method for stage 2. That's why Prime95 still uses it; P95 uses that low-memory algorithm.
The empirical solution is to use the -v flag with GMP-ECM, and try a variety of B2 values to see which value minimizes the expected time to complete the T-level you're interested in (I think t35, B1 = 1M?). The problem is that GMP-ECM has no way to know how long Stage 1 took, so that process doesn't work with your combination of programs. If I were you, I'd run GMP-ECM on a single curve for both stage 1 and stage 2, adjust for the time stage 1 takes on P95 (for M1277, it's about 10% faster at B1 = 11M), and see what B1 minimizes time to complete T35. I happen to enjoy doing such experiments, and I have sufficient memory to do so; if you like I'll run the tests for you and report my results and the process I used (for public-nitpicking purposes, 'cause "trust me" isn't good enough). Let me know what specific candidate you'd like me to test (the results should hold across a pretty wide range of inputs, because the options for B2 are rather coarse).[/QUOTE] Let's call Prime95 - P and gmp-ecm - E, T1=time in stage 1, T2= time in stage 2 Very rough quick test on M85333 Stage 1 ---------- P - 177 secs E - 2364 secs (not a typo, ran it again got 2381) so in stage 1 with an exponent in the 80k range P is 13x faster than E ! Stage 2 ---------- Only run with E, all cases B1=1M and only running stage 2 B2=10M - 352mb ram, 43 seconds B2=50M - 839mb ram, 114 seconds B2=100M - 1223mb ram, 184 seconds B2=1000M - 3992mb ram, avg over 50 runs is ~1300 seconds So if we aim for T2=~0.7*T1 then I would choose B1=1M, B2=120M Will do some more timings running multiple instance of each, the actual figures will vary as it becomes memory constrained, when I ran 6E with 2P cpu hovers around 80% and the 177 seconds becomes around 250 ps in case anyone is interested 2^83333-1 has two trivial factors 49233173057 & 20464531692207892554943 |
[QUOTE=Gordon;413369]Let's call Prime95 - P and gmp-ecm - E, T1=time in stage 1, T2= time in stage 2
Very rough quick test on M85333 Stage 1 ---------- P - 177 secs E - 2364 secs (not a typo, ran it again got 2381) so in stage 1 with an exponent in the 80k range P is 13x faster than E ! Stage 2 ---------- Only run with E, all cases B1=1M and only running stage 2 B2=10M - 352mb ram, 43 seconds B2=50M - 839mb ram, 114 seconds B2=100M - 1223mb ram, 184 seconds B2=1000M - 3992mb ram, avg over 50 runs is ~1300 seconds [/QUOTE] Did you notice that GMP-ECM chooses B2 that isn't quite what you ask it for? E processes Stage 2 in blocks, and a fraction of a block takes the same time as a full block, so the program rounds your requested B2 up to the next-biggest full block. On my setup, invoking E with 1e6 50e6 produces a B2 of 59.4M, and -v flag says 2198 curves are needed to complete a t35. E with 1e6 100e6 produces a B2 of 120M, 1790 curves for a t35. E with 1e6 1000e6 produces B2 of 1306M, 1030 curves for a t35. Using your timings, 177 + 114 = 291 sec/curve for 1e6/59e6. 291*2198 = 640ksec for a t35. 177 + 184 = 361 sec/curve for 1e6/120e6. 361*1790 = 646ksec for a t35. So, it appears between these two settings, 59e6 (your 50e6) is better. I would try a couple more B2 selections, perhaps 65M and 85M, to see if a setting in-between produces a lower expected time for a t35. For mersenne numbers specifically, the block size itself changes in a way I am not familiar with, so I don't know how granular the setting is; there may be a jump from 80M to 120M, for instance. |
[QUOTE=Gordon;413369]Stage 1
---------- P - 177 secs B2=10M - 352mb ram, 43 seconds B2=50M - 839mb ram, 114 seconds B2=100M - 1223mb ram, 184 seconds So if we aim for T2=~0.7*T1 then I would choose B1=1M, B2=120M [/QUOTE] You did the 0.7 in the wrong direction. T2 for 100M is already longer than T1, and your heuristic wants T2 shorter than T1. These B2s are near the normal choice from Prime95; what is stage 2 time for 100M from prime95? Perhaps these numbers are too big to bother with GMP-ECM at all. |
[QUOTE=VBCurtis;413410]Did you notice that GMP-ECM chooses B2 that isn't quite what you ask it for? E processes Stage 2 in blocks, and a fraction of a block takes the same time as a full block, so the program rounds your requested B2 up to the next-biggest full block.
On my setup, invoking E with 1e6 50e6 produces a B2 of 59.4M, and -v flag says 2198 curves are needed to complete a t35. E with 1e6 100e6 produces a B2 of 120M, 1790 curves for a t35. E with 1e6 1000e6 produces B2 of 1306M, 1030 curves for a t35. Using your timings, 177 + 114 = 291 sec/curve for 1e6/59e6. 291*2198 = 640ksec for a t35. 177 + 184 = 361 sec/curve for 1e6/120e6. 361*1790 = 646ksec for a t35. So, it appears between these two settings, 59e6 (your 50e6) is better. I would try a couple more B2 selections, perhaps 65M and 85M, to see if a setting in-between produces a lower expected time for a t35. For mersenne numbers specifically, the block size itself changes in a way I am not familiar with, so I don't know how granular the setting is; there may be a jump from 80M to 120M, for instance.[/QUOTE] Best explanation I have ever seen for how to do the calculations, you're a star :tu: I was looking at the [URL="http://www.mersenne.org/report_ecm/?txt=0&ecm_lo=85300&ecm_hi=85500&ecmnof_lo=1&ecmnof_hi=2500"]tables here[/URL] where it says for a T35 you need 1,580 curves but gives no clue as to bound 2....off to do some more testing |
On my laptop, Using P95 for both stages produces a time of 815sec for stage 1 and 298sec for stage 2 with bounds 1e6/100e6. If that ratio of T2 = 35% * T1 holds on your machine also, there is no reason to use GMP-ECM on this exponent; 100e6 on P95 happens faster than 59e6 on GMP-ECM.
Edit: Laptop is a Core M, so should have all the recent instructions, even if it's slow. |
[QUOTE=VBCurtis;413481]On my laptop, Using P95 for both stages produces a time of 815sec for stage 1 and 298sec for stage 2 with bounds 1e6/100e6. If that ratio of T2 = 35% * T1 holds on your machine also, there is no reason to use GMP-ECM on this exponent; 100e6 on P95 happens faster than 59e6 on GMP-ECM.
Edit: Laptop is a Core M, so should have all the recent instructions, even if it's slow.[/QUOTE] On 85333 I did some timings, with B1=1M I get the following B2=10M, P=7.865, E=41.98 B2=50M P=36.552, E=111.99 B2=100M, P=71.512, E=179.93 I calculated the total run times to complete a T35 in increments of 10M through to 100M. For E the sweet spot (minimising curves*stage1*stage2) is B2=40m where per curve time is 91.09s....still more than twice as slow as P at 50M So, the question is how many curves does P think it will take to complete a certain T at a certain boundary? If I run E with 1e6-1e6 1e8 it tells me that to complete T35 will take 1566 curves, at 1e9 it will tke 899 curves. Is there any way to get P to spit out the same information? Or if it is the exact same algorithm can we take the number of curves to be the same? A bit more experimenting, this time on M16553 (chosen at random), using the P-E combo with B1=1M the lowest time for a T35 is with B2=70M however with B1=3M the lowest time for a T35 is with B2=500M and the total time is less than the B1=1M... |
The number of curves for a T35 is a function of the B1 and B2 bounds, not of the software used to run the curve.
Your last couple lines support an observation I've made running my own tests over the years: Running one B1 level higher (Say, 3M instead of 1M) than the usual level for a T-level results in little added time to complete that level, but a substantial chance to find a factor bigger than the targeted T-level. I use 3M for T35, 8M for T40, 20M (or higher) for T45, etc. In your case, B1 = 3M appears to actually *save* time for a T35 compared to 1M, a nice discovery indeed. I believe mersenne.org converts whatever curves you submit into the equivalent number of curves at the indicated level on the site, but I'd like someone else to confirm this. If it's true, I will commence running M1277 with B1 = 18e8/default GMP-ECM B2, with each curve worth 10 curves at B1 = 8e8/B2 = 8e10. |
[QUOTE=VBCurtis;413505]The number of curves for a T35 is a function of the B1 and B2 bounds, not of the software used to run the curve.
Your last couple lines support an observation I've made running my own tests over the years: Running one B1 level higher (Say, 3M instead of 1M) than the usual level for a T-level results in little added time to complete that level, but a substantial chance to find a factor bigger than the targeted T-level. I use 3M for T35, 8M for T40, 20M (or higher) for T45, etc. In your case, B1 = 3M appears to actually *save* time for a T35 compared to 1M, a nice discovery indeed. I believe mersenne.org converts whatever curves you submit into the equivalent number of curves at the indicated level on the site, but I'd like someone else to confirm this. If it's true, I will commence running M1277 with B1 = 18e8/default GMP-ECM B2, with each curve worth 10 curves at B1 = 8e8/B2 = 8e10.[/QUOTE] right, one full T35 completed on M16553 Stage 1 - 5 instances of P, 533 curves @ 111 seconds, wall time 199 minutes Stage 2 - 5 instances of E, 533 curves @ 70 seconds, wall time 124 minutes Total time 5h 23m |
[QUOTE=Gordon;413646]right, one full T35 completed on M16553
Stage 1 - 5 instances of P, 533 curves @ 111 seconds, wall time 199 minutes Stage 2 - 5 instances of E, 533 curves @ 70 seconds, wall time 124 minutes Total time 5h 23m[/QUOTE] Sorry to quoye myself. forgot to put the bounds B1=3M, B2=500M and according to the web page that does the ecm reports, the B1=11M curve count increased...more on this in another post :bangheadonwall: |
[QUOTE=Gordon;413654]Sorry to quoye myself. forgot to put the bounds
B1=3M, B2=500M and according to the web page that does the ecm reports, the B1=11M curve count increased...more on this in another post :bangheadonwall:[/QUOTE] 533 curves at 3M has the same chance of finding a 45 digit factor as whatever number of 11M curves the database increased the count by. Your curves were less efficient per unit time at finding 45 idigit factors than B1 = 11M (or 20M, etc) would be, but they still had a chance, and that chance is reflected by the curve-count increase in the 11M column. You can calculate this yourself with the -v flag in GMP-ECM; see what 3M/500M says for number of curves to complete a T45, etc. |
| All times are UTC. The time now is 23:10. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.