mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Msieve (https://www.mersenneforum.org/forumdisplay.php?f=83)
-   -   Some results from a live GNFS180 polsel (https://www.mersenneforum.org/showthread.php?t=12823)

fivemack 2009-12-05 22:32

Some results from a live GNFS180 polsel
 
frmky and I have done the polynomial selection for EM43; c5 = 0 through 110000, on four GPUs (my GTX275 and three-quarters of frmky's Tesla S1070). It took about six GPU-weeks.

I think the Murphy_E bound somewhere around 2.7e-14 at 180 digits is significantly too low - we got about ten million polynomials in that range, and wouldn't have complained (although it would have taken several days to see the first polynomial) to get only the ones with E>4.0e-14, or even 4.5e-14. I'm the only person who can be blamed about this, since I set the bound in the first place, but I think it would be better to put it a bit higher.

I don't know how to go about shifting the stage-1 and stage-2 bounds in the face of evidence; is it possible to determine from a final polynomial what its scores at stage-1 and stage-2 were, or do I have to instrument msieve-gpu and run another large polsel? I suppose I can easily run 110k to 150k, it'll slow down the 2-941 linalg but not by all that much, and if we get an unexpectedly good polynomial before EM43 tasks start getting handed out, it's probably easy to change.

frmky 2009-12-05 23:40

For a few highly productive c5's, stage 2 ran for over 10 hours leaving the GPU idle. What probably should have been a 4-5 day run took nearly 8 days.

jasonp 2009-12-06 02:52

Raising the target E value and lowering the initial stage 2 norm will make the root sieve run much faster. It sounds like at a minimum stages 1 and 2 should run in separate threads; see the GPU thread for some musings on that.

PS: What do the best polynomials look like? Serge reported some experiments where the reported E value only weakly predicted how well a polynomial would find relations, and that a pol5 polynomial with a much better E value sieved significantly worse. Especially when a search produces hundreds of 'best' polynomials, maybe we should customize the factor base bounds in the E-value computation for the size of the polynomials, instead of using the same values all the time. We wouldn't be able to compare with pol5 anymore, but could probably sieve more effectively.

Batalov 2009-12-06 02:57

So what was the final best Murphy E?

And try "my" new (hopefully useful) formula to find an equivalent SNFS digit difficulty (fitted from a couple dozen jobs):

SNFS_equivalent_difficulty = -30 log[sub][SIZE=1]10[/SIZE][/sub]E - 128

What is your equivalent SNFS difficulty?
(For B+D gnfs-180, 2,2254L, a poly with 6.41e-14 suggests ~= snfs-268.
Msieve_144gpu, sadly, didn't produce any polys and died. 6.41e-14 is the pol51 poly.)

_____
[SIZE=1]I have finally figured out for myself what Murphy E means. It is proportional to the inverse of the total project sieving time. On the same machine or a cluster, a job with E=6e-14 will take fairly exactly 10x more time than a job with E=6e-13 and a 100x more time than a job with E=6e-12. [/SIZE]
[SIZE=1][/SIZE]
[SIZE=1]I'll write a separate thing about the quintics, quartics etc.: this measure helps to quantify the proverbial suboptimal-degree penalty.[/SIZE]

jasonp 2009-12-06 03:06

Technically the E value is the probability that one sieve value will be smooth, given the sieving area and the factor base bounds. That probability goes up with increasing factor base bounds, and may go up or down as the sieving area increases. Both pol5 and msieve fix all of those parameters, so that E values across factorizations are all directly comparable.

Batalov 2009-12-06 04:46

tangential Re: posts #3 and #5.

Actually, [FONT=Courier New]pol51opt[/FONT] has hidden -f, -F, -A parameters which (if supplied and roughly correspond to the future sieving use) affect the E value towards incomparability (cf. post #5) _[I]but[/I]_ the output polynomials eventually sieve better in real life, indeed!

I have more than once used these for the final polishing of the best candidates: for that, you put a few "*.51.m" lines that were the parents of the better initial offspring and repeat the [FONT=Courier New]pol51opt[/FONT] with somewhat increased search space plus the increased real-life -f, -F, -A values. This is similar to the suggested course in #3.

frmky 2009-12-06 06:42

The poly is
[CODE]# norm 9.833432e-18 alpha -9.052498 e 6.697e-14
skew: 536967657.44
c0: 486705885709926708065232033951307588813625602275
c1: 5584390886742987582391695130327092942465
c2: -2589293749660254385400621955533
c3: -205785074447711087191729
c4: -211349858750
c5: 101640
Y0: -77187904731145180346916804885190882
Y1: 27609235740881943367
n: 278490841076279407188741439481565179355926725853710201632331620642982062389901741890579963524423782637435949041666525000702723914662388812510545494307250950777886431051612811386531
[/CODE]
so your formula gives 267.2 for a GNFS of 179.4 digits.

Batalov 2009-12-06 06:55

That's a great one. ...And look at that alpha! :shock:
(and you probably had even larger abs-value alphas!)


Could you please run (just for a day) our number?
It was posted [URL="http://mersenneforum.org/showthread.php?p=195887#post195887"]here[/URL].

(you will observe that [I]p[/I] and [I]q[/I] are almost but just shy of 32-bit in size and resultant is 63.4 bits in size... some tricky carryovers crept in?)

jrk 2009-12-06 07:06

Is that a record alpha?

jasonp 2009-12-06 07:20

Some of the Bochum slides make it sound like spectacular alpha values like that would be common if you pour a great deal of effort into stage 2, and the input is very large so a big search space is available.

frmky 2009-12-06 08:29

That actually was the best alpha as well. The five best alphas were
[CODE]# norm 9.833432e-18 alpha -9.052498 e 6.697e-14
# norm 9.443674e-18 alpha -8.816673 e 6.512e-14
# norm 9.033319e-18 alpha -8.728573 e 6.310e-14
# norm 8.474841e-18 alpha -8.636510 e 5.865e-14
# norm 8.823795e-18 alpha -8.603598 e 6.228e-14
[/CODE]
and the best E's were
[CODE]# norm 9.833432e-18 alpha -9.052498 e 6.697e-14
# norm 9.443674e-18 alpha -8.816673 e 6.512e-14
# norm 9.033319e-18 alpha -8.728573 e 6.310e-14
# norm 8.823795e-18 alpha -8.603598 e 6.228e-14
# norm 9.606499e-18 alpha -7.836603 e 6.225e-14
[/CODE]
Note the significant overlap. All 6 of these polys were found at c5 of 101640.
[QUOTE=Batalov;197966]
Could you please run (just for a day) our number?
It was posted [URL="http://mersenneforum.org/showthread.php?p=195887#post195887"]here[/URL].
[/QUOTE]
Sure.

Batalov 2009-12-06 09:00

1 Attachment(s)
Thanks. Because sometimes...

Andi47 2009-12-06 10:50

[QUOTE=frmky;197965]The poly is
...[/QUOTE]

I just did a test run (Core 2 Duo @ 2.0 GHz, 64-bit-Linux):

[CODE]# norm 9.833432e-18 alpha -9.052498 e 6.697e-14
n: 278490841076279407188741439481565179355926725853710201632331620642982062389901741890579963524423782637435949041666525000702723914662388812510545494307250950777886431051612811386531
skew: 536967657.44
c0: 486705885709926708065232033951307588813625602275
c1: 5584390886742987582391695130327092942465
c2: -2589293749660254385400621955533
c3: -205785074447711087191729
c4: -211349858750
c5: 101640
Y0: -77187904731145180346916804885190882
Y1: 27609235740881943367
rlim: 130000000
alim: 130000000
lpbr: 31
lpba: 31
mfbr: 62
mfba: 62
rlambda: 2.6
alambda: 2.6
# Parameters not optimized![/CODE]

./gnfs-lasieve4I15e -a em43.poly -o em43_test1.out -f 60000000 -c 5000
Warning: lowering FB_bound to 59999999.
[COLOR="Blue"]total yield: 4645, q=60005047 (1.06234 sec/rel)[/COLOR]

10metreh 2009-12-06 13:13

1 Attachment(s)
[QUOTE=Batalov;197973]Thanks. Because sometimes...[/QUOTE]

I suppose the result of that is:

frmky 2009-12-07 09:19

[QUOTE=Batalov;197966]
Could you please run (just for a day) our number?
It was posted [URL="http://mersenneforum.org/showthread.php?p=195887#post195887"]here[/URL].
[/QUOTE]
Here's the best from a 1 day (4 GPU-day) run:

[CODE]# norm 6.382388e-18 alpha -6.977213 e 4.690e-14
skew: 96396127.95
c0: -21089523035205834558658893161383589790490875
c1: 25365708430996095210154238905975753526
c2: -72843247438343083950607872141
c3: -286810051133678582204076
c4: 1191598470970
c5: 75300
Y0: -104562293217428138402097394839773048
Y1: 30927533733738342637

# norm 6.052477e-18 alpha -7.456015 e 4.572e-14
skew: 71177217.42
c0: -176168744305195828043372966990512601113397184
c1: -48474401617643499835075365201872549504
c2: 63762059797096003748769347572
c3: 446546902426598975662414
c4: -125855215039143
c5: 60120
Y0: -109378093201325720088775462145703197
Y1: 28451743180686818239
[/CODE]

Batalov 2009-12-07 10:19

Thanks, Greg (and Jason, in the GPU thread) -- that's good enough.
(I have a 6.3e-14 poly from pol51, anyway.)
Then it was the old card that was the problem, not the code.

jrk 2009-12-21 09:25

[QUOTE=jasonp;197955]Technically the E value is the probability that one sieve value will be smooth, given the sieving area and the factor base bounds. That probability goes up with increasing factor base bounds, and may go up or down as the sieving area increases. Both pol5 and msieve fix all of those parameters, so that E values across factorizations are all directly comparable.[/QUOTE]

Are you talking about these values?:

[code] const double rfb_limit = 5000000;
const double afb_limit = 10000000;
const double sieve_area = 1e16;[/code]
Besides becoming incompatible with pol5, is there danger in raising these limits unconditionally? Say, would raising them make the score [i]less[/i] accurate for smaller numbers? Please forgive my ignorance.

jasonp 2009-12-21 14:04

Those three are what we're referring to.

The numbers are already used for inputs that are much smaller than would be appropriate if you actually used those values for the sieving, so I doubt it makes much difference.

In fact it might be cool to try to optimize those three at the same time that translation and skew are optimized, in the last part of stage 2; but I doubt that would work, because the E value would never drop as a result of a larger factor base. You'd need to add another term into the objective function that quantified the runtime of a siever, maybe by multiplying the E value by the number of relations needed and the time to find one relation. In that case the objective function becomes the total sieving time, which is really what we want to minimize, but now we're not dealing with a continuous function anymore.

jrk 2009-12-21 18:41

[QUOTE=jasonp;199526]Those three are what we're referring to.

The numbers are already used for inputs that are much smaller than would be appropriate if you actually used those values for the sieving, so I doubt it makes much difference.

In fact it might be cool to try to optimize those three at the same time that translation and skew are optimized, in the last part of stage 2; but I doubt that would work, because the E value would never drop as a result of a larger factor base. You'd need to add another term into the objective function that quantified the runtime of a siever, maybe by multiplying the E value by the number of relations needed and the time to find one relation. In that case the objective function becomes the total sieving time, which is really what we want to minimize, but now we're not dealing with a continuous function anymore.[/QUOTE]

I take it then that the final norm limit needs to be raised as well if the afb/rfb limit is increased. Quickly testing a c110 shows that increasing afb/rfb to 1e8 causes the 'e' score to be multiplied (vs using default alim/rlim) on average by about a factor of 91, and for a c129, about 152.

Is there a quick way to estimate how much to adjust the final norm limit for a given input size if afb/rfb are multiplied by fixed constant?

jrk 2009-12-21 19:19

[QUOTE=jrk;199540]Quickly testing a c110 shows that increasing afb/rfb to 1e8 causes the 'e' score to be multiplied (vs using default alim/rlim) on average by about a factor of 91, and for a c129, about 152.[/QUOTE]
And for a c151, about 330. So it is not a log scale factor w.r.t. input length.

jrk 2009-12-21 21:55

Looks like the factor that is needed to scale the 'e' cutoff when afb/rfb are increased to 1e8 fits nicely to this curve:

3.15 * exp(0.0134 * log(N))

(for degree 5 at least, did not check degree 4 or 6)

Later tonight I will re-test some polys using the new score and see if they are ordered more accurately (according to their sieving speed).

jrk 2009-12-21 22:21

It turns out that scaling the 'e' cutoff by the factor written above does not work as expected. No polynomials are found then, even though polys scoring higher than the scaled cutoff can be found otherwise

(e.g. there is a 3.17e-10 with the new scoring but it isn't found when the cutoff is 2.69e-10). Something else is happening. Perhaps no scaling is needed at all, then?

jasonp 2009-12-22 02:57

There isn't any simple relationship between the parameters and the E value; the parameters act to scale the argument to Dickman's function, which is integrated over the sieving region.


All times are UTC. The time now is 13:01.

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