mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Msieve (https://www.mersenneforum.org/forumdisplay.php?f=83)
-   -   New polynomial finder discussion (https://www.mersenneforum.org/showthread.php?t=11023)

fivemack 2008-12-18 00:36

Very bad best-polynomial
 
A simple 'msieve -v -np 3358323032880372693143301502113331747565332737371006633015167519465812493720372585783051724897778685785848677' gives me a polynomial with
Wed Dec 17 23:01:22 2008 skew 64524.95, size 4.186314e-11, alpha -5.331026, combined = 2.475010e-10

which translates to ggnfs format as
[code]
n: 3358323032880372693143301502113331747565332737371006633015167519465812493720372585783051724897778685785848677
skew: 64524.95
Y0: -1411222728902026506433
Y1: 148807419971
c0: -868711284839411933038070832
c1: 23758183715177455719012
c2: 624286663027613216
c3: -11397252686095
c4: -86404576
c5: 600
type: gnfs
alim: 3200000
rlim: 3200000
lbpr: 27
lbpa: 27
mfbr: 54
mfba: 54
rlambda: 2.6
alambda: 2.6
[/code]

A few minutes with the GNFS polynomial selector gets me
[code]
n: 3358323032880372693143301502113331747565332737371006633015167519465812493720372585783051724897778685785848677
skew: 83663.30
# norm 2.12e+15
c5: 1080
c4: 862054902
c3: -28640400300919
c2: -5581482305346264623
c1: 23643249351648318166735
c0: 5094331293658883687679374825
# alpha -5.81
Y1: 208389411449
Y0: -1254666285515209326636
# Murphy_E 9.80e-10
# M 358576645929895826768194746682251522272972273829396424258748912720724782748344700120221675041459567221738673
type: gnfs
rlim: 3200000
alim: 3200000
lpbr: 27
lpba: 27
mfbr: 54
mfba: 54
rlambda: 2.6
alambda: 2.6
[/code]

But
[code]
/home/nfsworld/64bit_new/gnfs-lasieve4I12e -a msieve.poly -f 3200000 -c 1000
total yield: 146, q=3201007 (0.24219 sec/rel)
/home/nfsworld/64bit_new/gnfs-lasieve4I12e -a gnfs.poly -f 3200000 -c 1000
total yield: 9168, q=3201007 (0.00395 sec/rel)
[/code]

so the ggnfs tools have produced a polynomial about sixty times as good. I feel this is almost at the point of being a bug in the polynomial-assessment code, particularly since I've had msieve produce me some very good polynomials in the past.

(and, indeed, if I pick the best-alpha polynomial in the msieve.dat.p file, which is
[code]
# norm 2.331e+15 alpha -6.801395 skew 42631.87 e 2.113e-10
R0 -913468754412252477889
R1 178400848403
A0 -2023049826680594598977978748
A1 -76221025284510540482388
A2 175525284744444029
A3 11542556260238
A4 1248902864
A5 5280
[/code]
I get total yield: 8104, q=3201007 (0.00357 sec/rel)

jasonp 2008-12-18 03:01

Those times are very strange; the Murphy E code that I'm writing assigns an E value of 1.25e-9 to the msieve polynomial chosen, which is fully 27% better than the polynomial found by pol5. The msieve polynomial with the higher alpha has an E of only 1.1e-9, which is still higher than the pol5 choice, in approximately the ratio of the sieving times. My E code also agrees with the pol5 code for the GGNFS polynomial.

As Serge points out, the computation of E assumes that the factor base bounds and sieve area are specified, but GGNFS chooses different values for the actual sieving and for a C109 they are much smaller than the default parameters to the E computation. Also, the size score given by the current msieve version completely ignores translation and skewness of the polynomial; optimal values of these are computed via very clumsy means right now, after the size score indicates a good polynomial.

fivemack 2008-12-18 09:04

Please call me nine sorts of incompetent and tell me not to attempt to report subtle bugs after midnight; if you spell 'lpbr' as 'lbpr', the gnfs-lasieve4I12e program does not complain [i]but doesn't use large primes either[/i].

Could someone with commit access to GGNFS add a check for unrecognised A: B lines in the input parser?

Batalov 2008-12-18 09:14

[quote=fivemack;153847]Could someone with commit access to GGNFS add a check for unrecognised A: B lines in the input parser?[/quote]
Ok.
(...when I will be adding the -resume option...)

Batalov 2008-12-19 07:55

gnfs-lasieve4I14e -R
 
Ok. It's there (the sanity checks for the "lbpr" in the polynomial took several clumsy efforts to fix - versions 326, 327). Now, the resume option is in SVN [URL="http://ggnfs.svn.sourceforge.net/viewvc/ggnfs/trunk/src/lasieve4/gnfs-lasieve4e.c?r1=327&r2=328&pathrev=328"]version 328[/URL]. Please feel free to criticise.

The last relation line after a crash is often incomplete; I chose the least evil -- to add the endline after it. If the computer crashed (or you had to kill your process) all you now have to do is repeat the last command-line with added [B]-R[/B] option. I also added the denial of overwriting of an existing relations file...



[SIZE=1]P.S. On a second thought, watch out, your perl scripts might start bailing out. I think it is better to solemnly remove the "spairs.out" file by the perl script, than have a million rels erased by overwriting a file, when one is not careful... Apparently both things can happen. Those who use the perl scripts and don't know how to modify them - be damned. Sorry! :-) Learn perl!![/SIZE]

Andi47 2008-12-22 19:07

c135 - search range to high?
 
[QUOTE=Andi47;151102]I used 1.39 beta 2 to search for a poly for a [URL="http://mersennewiki.org/index.php/Base_10_Still_Open#HP548"]c136[/URL].....[/QUOTE]

The same as in my previous post, now for a [URL="http://mersennewiki.org/index.php/Base_10_Still_Open#HP548"]c135[/URL]: While one cpu of my Core2Duo was searching in the default range with msieve 1.39, the other one searched (with 1.39 too) from 1 upwards.

I got:

Poly #1, from the default range:

[code]n: 761102591343141130528734642782311280444504698188990752294818515177510480387765034971481816355403513713187530601982347688992389537498069
Y0 -98849402606734405519591518
Y1 1030641617930699
c0 -70398717449201429374085022202701305
c1 383062608256024444591653325702
c2 -377982730031082041008189
c3 -398992525424165632
c4 399578501904
c5 80640
skew: 1062985.67
# size 3.074325e-014, alpha -8.239577, combined = 4.792375e-013
rlim: 8000000
alim: 8000000
lpbr: 28
lpba: 28
rlambda: 2.55
alambda: 2.55
mfbr: 52
mfba: 52[/code]

Poly #2 (from the lower range):

[code]n: 761102591343141130528734642782311280444504698188990752294818515177510480387765034971481816355403513713187530601982347688992389537498069
Y0 -119709566397229356809815710
Y1 816398599490551
c0 9977520772231914172799523496170929
c1 60276799573547959982893215099
c2 -705506867921235653659
c3 -200379365107047219
c4 -21323879230
c5 30960
skew: 689634.49
# size 4.209382e-014, alpha -7.413720, combined = 4.982693e-013
rlim: 8000000
alim: 8000000
lpbr: 28
lpba: 28
rlambda: 2.55
alambda: 2.55
mfbr: 52
mfba: 52[/code]

In a search range (with gnfs-lasieve4I14e) from 8M to 8M+5000 I get:

Poly #1: yield 15801
Poly #2: yield 17995

So I think the search range is possibly a bit too high - or it definitively pays off to search a bit more for factorizations >c130

fivemack 2008-12-29 15:30

I'm contemplating the next job for the assembled hordes of sievers. I would be interested in 109!+1 which is a 177-digit GNFS. Is it likely that, if I do 10^263-1 first (ETA a couple of months), msieve will have reached the stage at which it can sensibly be used for polynomial selection for so large a number?

jasonp 2008-12-29 15:58

A few months should be enough time to soup up the code for the job. I've spent a bunch of time on the pol51opt-like part of the code and have implemented Murphy's scoring algorithm, so the next version will produce E values which are directly comparable to what GGNFS produces.

Still, I don't think everyone should risk pouring so much time into a choice made by unvetted code. Perhaps everyone would consider running msieve and pol5 in equal measure when selecting polynomials for very large jobs? Or use msieve for small A5 and pol5 for large A5? I can also port the stage 2 optimizations back into pol5 to put the two codes on a more even footing.

Actually, the big obstacle with poly selection for larger jobs is that nobody seems to have reliable parameters for factorizations > C155.

Batalov 2008-12-30 04:52

These parameters seem to fit a straight line easily. (The conventional ones at the low end, the best known params for the C180, C165, C160, multiple C156s are in the forum - at the top end). The top end of course is more implortant, but the low end is well established and tested.

[SIZE=1]A bit off-topic, or maybe not: I am running now a selection for a meager C146 (which is the only clear GNFS in homogeneous Cunnignams) - and it turned out to be an interesting excercise because it is right on the projected -p change from 6 to 7, so I am running both values for pol51. Of course -p 7 flies over X5s more than ten times faster, but both found over a night+day a few comparable polynomials. And I will run msieve's select, as well. Do you have (internally) and equivalent of the -p parameter? Then the result could be of interest. (I am far from done, but I will PM you later.) I remember that Tom used two values of -p in searches for the C180, too. So that is a good data point to know...[/SIZE]

jasonp 2008-12-30 12:30

Msieve's poly selection doesn't need an equivalent to -p. This specifies the number of 'special' factors in the leading rational coefficient, and Kleinjung's improved algorithm doesn't care whether factors are 'special' or not.

fivemack 2008-12-30 16:20

What parameters does your current algorithm need? With the two-stage one pol51m0b+pol51opt, pol51m0b needed one parameter which you tuned adaptively (I aimed for about one output line every ten seconds), and pol51opt needed two which I just searched for without much guidance keeping the ratio roughly right.

The Murphy-E score for the GNFS jobs I've done has generally fitted very nicely as

ln(score*10^12) = 21.335 - 0.131*log_10(N)

and so I've tended to run large polynomial-selection jobs until I get something of that score or above, and then for as long again in the hope of doing better.


All times are UTC. The time now is 04:56.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.