mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Msieve (https://www.mersenneforum.org/forumdisplay.php?f=83)
-   -   A high-performance degree-6 root sieve (https://www.mersenneforum.org/showthread.php?t=13315)

jasonp 2010-04-18 05:00

A high-performance degree-6 root sieve
 
It's not done yet, but the initial results are promising.

Can someone compare the yield for RSA200 between the polynomial that was actually used, and this one?
[code]
# norm 3.654470e-15 alpha -11.690009 e 1.019e-15
skew: 1599533700.93
c0: 59779951656974443324757595299721437773698423484835904387
c1: -3650734124438501657842746115963920884981782086493
c2: -8432730247914056321080131487192727012508
c3: 1987529475731346394981376992164
c4: 2246526410779665676181
c5: -828739829271
c6: 180
Y0: -733353324813424457468143920275996
Y1: 10146121641768070157[/code]
That alpha value is not a mistake, and is entirely typical with the current code. I'm in the middle of changes that will probably improve alpha but also worsen the polynomial size, so that the final E value may not wind up any better.

Will post better polynomials if I find any.

jrk 2010-04-18 05:05

Great job! Many have been looking forward to this. :smile:

fivemack 2010-04-18 09:49

I don't at present have a siever binary which can use the 35-bit large primes which were used in the real RSA200 project, but (comparing at Q=3e8 with 33-bit large primes, gnfs-lasieve4I16e) my very-initial results are unpromising to the point that I assume I've made an error. Timings on K8/2500:

polynomial from [url]http://www.loria.fr/~zimmerma/records/rsa200:[/url]
total yield: 316, q=300000167 (1.52370 sec/rel)

polynomial from this work:
total yield: 55, q=300000167 (6.44636 sec/rel)

(those were algebraic-side results; rational-side lattice sieving is even worse)

Batalov 2010-04-18 10:04

...I also was just now typing something to the same tune. My limits (32-bit, 16e siever, 134M to have fast output) were lower still, so they were even more prone to be misleading, but anyway: they suggested a 3x yield lead by the RSA200-team poly (poly5). This is consistent with the 3x difference in E values, though (both gauged by msieve):

[FONT=Arial Narrow]poly5 skew 2766778.76, size 9.377070e-20, alpha -6.759447, combined = [U]3.869132e-15[/U]
poly6 skew 1599533700.93, size 3.654470e-15, alpha -11.690009, combined = [U]1.019247e-15[/U]
[/FONT]
[FONT=Arial Narrow][FONT=Verdana]Is it possible that Kleinjung et al. chose degree 5 because it was faster than their best degree 6 (if they had one)?[/FONT]
[FONT=Verdana][/FONT]
[FONT=Verdana]Are the new changes make your degree 5 code fly, too?[/FONT]
[FONT=Verdana][/FONT]
[FONT=Verdana]It is a good start though.[/FONT]
[/FONT]

jasonp 2010-04-18 12:34

The difference in E values between different degrees are not directly comparable from what I understand; for inputs above 100 digits a degree 4 polynomial has 5x the E-value of a corresponding degree 5, but only sieves about 25-50% faster.

I also don't know how much this can help degree 5; certainly for really big inputs the search space is large enough to get a boost from the techniques used here, and I definitely want to merge degree-5 and degree-6 to share as much common code as possible. But for skew S the total number of combinations to try is S^2 for degree 5 but over S^4.5 for degree 6, and the latter leaves a great deal more room to search for ever-more-perfect rotations.

I suppose this means 200 digits is too small to benefit from a degree-6 polynomial; either that or we have to such for much longer than I did (the current one took only 45 minutes to find).

henryzz 2010-04-18 12:37

[quote=jasonp;212288]or we have to such for much longer than I did (the current one took only 45 minutes to find).[/quote]
I would guess this would help. They will have spent many times longer on polynomial selection. Did you use a GPU or a CPU?

jasonp 2010-04-18 12:43

I suspect the CPU code would never find hits for an input this big; GPU all the way.

jasonp 2010-04-20 13:01

So after a 7-hour run the best polynomials are as follows:

[code]
# norm 4.650795e-15 alpha -14.023266 e 1.224e-15
skew: 3669074663.12
c0: 71046780755294559737849089471137694853806696221785232489025
c1: -85214938924956262093456046622348403904354239838405
c2: -5822653549360934072796526107550420353660
c3: 8407127296553013512504826292892
c4: 1836893694929492612471
c5: 714036673689
c6: 180
Y0: -733338831111512333655969656944362
Y1: 10146121641768070157
# norm 4.767060e-15 alpha -12.910176 e 1.239e-15
skew: 3669074663.12
c0: -2239961586260210913041204919626077178529850564511144597025
c1: -7369682704936333281374337760357276896988988622685
c2: -6218093582390488942462501931002451074380
c3: 3772580356214190824035542436692
c4: 1379231690075687248121
c5: -558693462711
c6: 180
Y0: -733350787847420721126217882295672
Y1: 10146121641768070157
# norm 4.885479e-15 alpha -13.753917 e 1.271e-15
skew: 3669074657.27
c0: -9317576448889630578971266941385045303719860825538059591040
c1: 9973903552116075866600736608173958993124597787056
c2: 9123884421936144923942197855539961831836
c3: 3223050969911337473333191418890
c4: 1654945457282841178286
c5: -656693789151
c6: 180
Y0: -733351708517080900033268025649423
Y1: 10146121641768070157
[/code]
with the last one above being the best overall. The best alpha values are:
[code]
# norm 3.767941e-15 alpha -13.843902 e 1.032e-15
# norm 3.963610e-15 alpha -13.872815 e 1.073e-15
# norm 3.692745e-15 alpha -13.874815 e 1.014e-15
# norm 3.971716e-15 alpha -13.893700 e 1.077e-15
# norm 4.650795e-15 alpha -14.023266 e 1.224e-15
[/code]
I'll try to get the search time down, seven hours is much too long.

Batalov 2010-04-20 23:58

We are maximizing E, but can we trust E?
 
[quote=jasonp;212288]The difference in E values between different degrees are not directly comparable from what I understand; for inputs above 100 digits a degree 4 polynomial has 5x the E-value of a corresponding degree 5, but only sieves about 25-50% faster.[/quote]
True. Definitely not directly.
This seems to be less pronounced for comparing degrees-5 vs. 6. Forgive me a small tangent - maybe you will find it useful, if not relevant? Here goes nothing:

I ran some tests for two (equally useless*) polynomials for 10,286+:
- t5, a quintic diff.260 from /11 reduction and
- t6, a sextic diff.264 from /13 reduction.
The E values are
[FONT=Arial Narrow]t5 Mon Apr 19 00:19:37 2010 skew 1.00, size 1.427820e-17, alpha 2.379130, combined = 5.388172e-14[/FONT]
[FONT=Arial Narrow]t6 Mon Apr 19 00:20:35 2010 skew 1.00, size 7.112909e-13, alpha 3.125762, combined = 8.705755e-14[/FONT]
but the sieving speeds are not differing by that much (same limits, 30-bit, 134M, 15e):
[FONT=Arial Narrow]-r t5 total yield: 604, q=134001001 ([B]1.29765[/B] sec/rel)[/FONT]
[FONT=Arial Narrow]-a t5 total yield: [COLOR=darkred]267[/COLOR], q=134001001 ([COLOR=darkred]2.51970[/COLOR] sec/rel)[/FONT]
[FONT=Arial Narrow]-r t6 total yield: 596 , q=134001001 ([B]1.32622[/B] sec/rel) \__ but both sides are OK-ish[/FONT]
[FONT=Arial Narrow]-a t6 total yield: 581, q=134001001 (1.56935 sec/rel) /[/FONT]
[FONT=Arial Narrow](need to sieve more, much more before making far-fetching propositions; but I didn't have time)[/FONT]

If we were planning to sieve on both sides, t6 here is better; if one side, then need to sim more before deciding*...

Is it possible that E score is rather correlated to predicting "a blend" of sieving on both sides (which in real life a user doesn't have to do, instead wisely chosing the better side; hence the difference)? This could explain the quartic/quintic comparisons around the division line (there, quartic has a horrible one side and a better other side, quintic is OK-ish for both).

I meant this tangent to lead to a possibly better understanding if E is still a useful indicator (even if between degrees), or if only sims could be trusted.

I don't understand the E score enough to suppose it can be modified to predict the yield from a certain side of sieving, ...can it?

_____
*useless because the true winner for this number is the [I]gnfs[/I] polynomial. There are very few other Cunnigham table examples left with simultaneous reduction by 11 and 13 (or 11 and 7, where 7 will win, so that's not too interesting) so I went with this one.

jasonp 2010-04-21 01:56

The E-value computation looks at the probability that both the rational and algebraic polynomials are smooth, then multiplies those together and integrates over a sample sieving region. To account for large primes (including special-q) you'd have to modify the probability function in very complex ways. Murphy's dissertation goes into the gory details.

If you want a somewhat unrealistic idea of how the two sides of the polynomial pair behave individually, you could always go to gnfs/poly/size_score.c:520 and comment out one call to dickman() or the other.

jasonp 2010-04-24 01:57

More changes in the pipeline, but in the meantime a nice improvement:
[code]
R0: -733353401621513341007654478236140
R1: 10146121641768070157
A0: 1477396862285918910964124660292692112463593156295871422227
A1: 7059861951105466533887079259576011943187171578707
A2: 930817317592755233385078920781705632292
A3: 1918896273539831751475486102804
A4: 2278049739986484659141
A5: -836915636631
A6: 180
skew 3669074663.12, size 5.677371e-15, alpha -13.871297, combined = 1.424316e-15
[/code]


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

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