20210710, 06:30  #45  
Jun 2003
3·17·101 Posts 
Quote:
Of course, not all SNFS 175 are equal. And the 1.3 might not be the proper value. So, it is a good starting point to check if one or the other is clearly superior, but not definitive. Last fiddled with by axn on 20210710 at 06:30 

20210710, 13:13  #46 
Apr 2010
Over the rainbow
3^{2}·5·59 Posts 
I think I saw somewhere that
snfs difficulty =(digit lenght30)*1.5 Wich is close to what axn said. 
20210710, 13:34  #47  
Apr 2020
2·251 Posts 
You can use MurphyE scores as given by cownoise/msieve to compare polynomials as long as they have the same degree. Helpfully this is a degree 5 SNFS polynomial, so we can compare it to GNFS polynomials in the right range. The score of ~9e11 is comparable to the score of a typical GNFS130 polynomial. 175/130 = 1.35 so that's a good ratio to use for these numbers.
Quote:
I believe the ratio gets larger as numbers get bigger. 1.42 would suggest SNFS250 is as hard as GNFS176, which it isn't. This must have a typo? (13030)*1.5 = 150... Last fiddled with by charybdis on 20210710 at 13:37 

20210710, 13:53  #48 
"Rich"
Aug 2002
Benicia, California
2·683 Posts 
Batalov told me this:
The short rule of thumb is gnfs_size < 0.56 * S +30 where S is SNFS difficulty. 
20210711, 09:27  #49 
Aug 2020
79*6581e4;3*2539e3
2·3·67 Posts 
So the difficulty to factor a cofactor of a "special number" is entirely determined by the size of the special number? Or does the cofactor size also play a role? I guess the latter?
And at roughly which digit length should I switch to c130 parameters? VBcurtis mentioned approximately every 30 bits I should switch +5 digits for the params, but at what starting points? 
20210711, 11:08  #50 
Jun 2003
12037_{8} Posts 
The former. Using the cofactor helps in the final sqrt phase when it is doing the gcd to extract factors. That'll avoid reporting small (previously known, redundant) factors.

20210711, 19:02  #51  
"Curtis"
Feb 2005
Riverside, CA
3×1,667 Posts 
Quote:
That said, the formula given the post before yours allows you to plug in 130 for GNFS and solve for S; I get 180 or so. By the time you're at 200 digits, you ought to test params yourself or study the 14e queue submissions in NFS@home subforum to see what params were chosen for SNFS jobs of similar size. That research should keep you out of trouble of the "oops this job took twice as long as it should have" sense. When in doubt, use the bigger largeprime option. 

20210713, 18:00  #52 
Aug 2020
79*6581e4;3*2539e3
2·3·67 Posts 
Ok, so I roughly chose the params for a GNFS composite of the same difficulty? 180 would agree with my current plan, I used params.c120 for 520, switched to 125 at 550 and next at 580 would be up.
So far the longest SNFS took about 5 h for sieving, so I'm still far from days. 
20211018, 16:17  #53 
Aug 2020
79*6581e4;3*2539e3
2·3·67 Posts 
Once again the factoring times increased significantly. I'm at 1281979*2^632+1 and the 179 digits cofactor took nearly 24 hours. I used the optimized c140 params as basis with slightl adjustment as suggested here previously:
Code:
tasks.lim0 = 13000000 tasks.lim1 = 13000000 tasks.lpb0 = 31 tasks.lpb1 = 31 tasks.sieve.mfb0 = 58 tasks.sieve.mfb1 = 56 tasks.sieve.lambda0 = 1.805 tasks.sieve.lambda1 = 1.79 tasks.sieve.ncurves0 = 22 tasks.sieve.ncurves1 = 19 tasks.I = 14 tasks.qmin = 1000000 tasks.sieve.qrange = 10000 tasks.sieve.rels_wanted = 90000000 #increased from 82,000,000 tasks.sieve.sqside = 0 Does that give a hint as to what to optimize? In general, as it was said here that SNFS required custom tweaking, what are the things to look out for? I have an idea about qmin and rels_wanted, but I have no clue how to determine optimization of the other parameters. Any help is greatly appreciated. 
20211018, 16:45  #54 
Just call me Henry
"David"
Sep 2007
Cambridge (GMT/BST)
31×191 Posts 
What polynomial degree are you using? 5?

20211018, 20:51  #55  
Apr 2020
111110110_{2} Posts 
Quote:
The way that CADO reports the excess is unhelpful IMO. The way that the "purge" phase of filtering works is as follows: 1a. Run singleton removal until no singletons are left. If the excess is negative or too small (as determined by required_excess), stop and report this excess value. 1b. If excess is large enough, run clique removal. This throws away some relations and ideals in order to make the eventual matrix smaller, while decreasing the excess. CADO will make sure not to let the excess get too small (but now the threshold for "small" is no longer determined by required_excess; it's just a few hundred) 2a. Run singleton removal again: after clique removal some new singletons will have been created. 2b. Run clique removal again. ... repeat until the excess is reduced to the desired figure. Report this excess value and move on to the "merge" phase. So if "purge" is successful, it will always report a very small excess figure, so you can't see how much you've oversieved. To get a figure that's actually useful, you'll need to look in the jobname.purge.stdout.* files. You'll see that the program starts by reading the relations, and then outputs something like this: Code:
Step 0: only singleton removal Sing. rem.: begin with: nrows=44925659 ncols=48627588 excess=3701929 at 30.06 Sing. rem.: iter 001: nrows=23365948 ncols=22350686 excess=1015262 at 34.29 Sing. rem.: iter 002: nrows=18377635 ncols=16926608 excess=1451027 at 35.81 Sing. rem.: iter 003: nrows=16784335 ncols=15279175 excess=1505160 at 36.70 Sing. rem.: iter 004: nrows=16225933 ncols=14713523 excess=1512410 at 37.48 Sing. rem.: iter 005: nrows=16015632 ncols=14502171 excess=1513461 at 38.10 Sing. rem.: iter 006: nrows=15935778 ncols=14422157 excess=1513621 at 38.69 Sing. rem.: iter 007: nrows=15903684 ncols=14390037 excess=1513647 at 39.26 Sing. rem.: iter 008: nrows=15890465 ncols=14376813 excess=1513652 at 39.86 Sing. rem.: iter 009: nrows=15885325 ncols=14371673 excess=1513652 at 40.44 Sing. rem.: iter 010: nrows=15883380 ncols=14369728 excess=1513652 at 41.06 Sing. rem.: iter 011: nrows=15882660 ncols=14369008 excess=1513652 at 41.63 Sing. rem.: iter 012: nrows=15882378 ncols=14368726 excess=1513652 at 42.26 Sing. rem.: iter 013: nrows=15882267 ncols=14368615 excess=1513652 at 42.90 Sing. rem.: iter 014: nrows=15882228 ncols=14368576 excess=1513652 at 43.44 Sing. rem.: iter 015: nrows=15882201 ncols=14368549 excess=1513652 at 44.07 Sing. rem.: iter 016: nrows=15882192 ncols=14368540 excess=1513652 at 44.70 Sing. rem.: iter 017: nrows=15882186 ncols=14368534 excess=1513652 at 45.27 Sing. rem.: iter 018: nrows=15882185 ncols=14368533 excess=1513652 at 45.90 Sing. rem.: iter 019: No more singletons, finished at 46.44 Last fiddled with by charybdis on 20211018 at 20:55 

Thread Tools  
Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
A new tool to identify aliquot sequence margins and acquisitions  garambois  Aliquot Sequences  24  20210225 23:31 
Comparison of GNFS/SNFS With Quartic (Why not to use SNFS with a Quartic)  EdH  EdH  14  20200420 16:21 
new candidates for M...46 and M48  cochet  Miscellaneous Math  4  20081024 14:33 
Please identify!  BrianE  Lounge  24  20080801 14:13 
Easily identify composites using multiplication  Nightgamer360  Miscellaneous Math  9  20070709 17:38 