mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   NFS@Home (https://www.mersenneforum.org/forumdisplay.php?f=98)
-   -   Fast Breeding (guru management) (https://www.mersenneforum.org/showthread.php?t=20024)

RichD 2018-09-08 19:13

[QUOTE=debrouxl;495665]Alright, I raised the upper bound for C179_374xx231_19 to 300M.
The poly doesn't have a "type:" line, but since it has a "lss:" line, I'd expect it to have been sieved on the right side anyway.[/QUOTE]

Thanks. I wonder what happened to the "type:" line! It was in the original [url=https://www.mersenneforum.org/showpost.php?p=494206&postcount=1560]post[/url].

VictordeHolland 2018-09-09 22:17

[QUOTE=RichD;494880]C200 from the OPN t600 file (for 14e).
[ a.k.a. Phi_19(Phi_3(Phi_3(Phi_3(612067)/3/4801)/3/43/9949)/3/41233)/15733/90791273/58231064341 ]
Sieve on algebraic side.
[CODE]n: 25503431421917993101321887118006938878378655964476437605074260560152721672529861314581467042556964110748403572526947437910470022455618855395879515986932272093603127760772643420867362459955421459731663
# 2246354414917^19-1, SNFS-235, sieve on algebraic side
lss: 0
skew: 0.0087
c6: 2246354414917
c0: -1
Y1: -1
Y0: 11335347337562584746201140717669233213
type: snfs
rlim: 134000000
alim: 268000000
lpbr: 31
lpba: 32
mfbr: 62
mfba: 94
rlambda: 2.6
alambda: 3.7[/CODE]Trial sieving 5K blocks.
[CODE] Q Yield
20M 9932
60M 6084
100M 5822
200M 5389
250M 4015
300M 4021
350M 4561[/CODE][/QUOTE]
Can somebody explain (in simple/layman terms) why these parameters are so different from the other OPN SNFS numbers?
(31-32bit hybrid)
mfba: 94? (not 2x lpba)
and high alambda 3.7
sieving on [U]algebraic[/U] side (I thought SNFS were mostly sieved on the rational side???)

:confused2:

VBCurtis 2018-09-10 04:31

[QUOTE=VictordeHolland;495779]Can somebody explain (in simple/layman terms) why these parameters are so different from the other OPN SNFS numbers?
(31-32bit hybrid)
mfba: 94? (not 2x lpba)
and high alambda 3.7
sieving on [U]algebraic[/U] side (I thought SNFS were mostly sieved on the rational side???) :confused2:[/QUOTE]
mfba 94 is just less than 3 * lpba, which tells you this poly file uses 3 large primes on the algebraic side for sieving. Similar to selecting a sextic rather than a quintic polynomial, there is a size of problem where 3 large primes on one side improves yield quite a lot while sieving as quickly (or, at larger sizes, quite a bit faster) as 2 large primes. ETA: My personal experience is that test-sieving 3LP vs 2LP should be tried starting around SNFS-250 and GNFS-175. 3LP isn't always faster, but on some problems it's a substantial improvement.
Lambda is chosen as 3.x when using 3 large primes, 2.x (or, rarely, 3.0) when using two large primes. So, once 3 LPs on a side were selected, alambda was chosen to match.
Note that 3 large primes on both sides isn't used until *much* larger problems (say, SNFS 310+ or GNFS 220+, perhaps larger- I don't have much experience up there!).

I'm not used to seeing lim's chosen larger on the sieving side than the other side; I'm curious about the test-sieving results on that one!

VictordeHolland 2018-09-10 07:09

[QUOTE=VBCurtis;495809]mfba 94 is just less than 3 * lpba, which tells you this poly file uses 3 large primes on the algebraic side for sieving. Similar to selecting a sextic rather than a quintic polynomial, there is a size of problem where 3 large primes on one side improves yield quite a lot while sieving as quickly (or, at larger sizes, quite a bit faster) as 2 large primes. ETA: My personal experience is that test-sieving 3LP vs 2LP should be tried starting around SNFS-250 and GNFS-175. 3LP isn't always faster, but on some problems it's a substantial improvement.
Lambda is chosen as 3.x when using 3 large primes, 2.x (or, rarely, 3.0) when using two large primes. So, once 3 LPs on a side were selected, alambda was chosen to match.
Note that 3 large primes on both sides isn't used until *much* larger problems (say, SNFS 310+ or GNFS 220+, perhaps larger- I don't have much experience up there!).

I'm not used to seeing lim's chosen larger on the sieving side than the other side; I'm curious about the test-sieving results on that one![/QUOTE]
Thanks for satisfying my curiosity :bow:

RichD 2018-09-10 23:00

[QUOTE=VictordeHolland;495779]Can somebody explain (in simple/layman terms) why these parameters are so different from the other OPN SNFS numbers?
(31-32bit hybrid)
mfba: 94? (not 2x lpba)
and high alambda 3.7
sieving on [U]algebraic[/U] side (I thought SNFS were mostly sieved on the rational side???)

:confused2:[/QUOTE]

[B]VBCurtis[/B] did a great job explaining the mechanics of the polynomial, let me see if I can explain the logic.

The OPN numbers are pretty much cookie cutters once you get a working polynomial. Each exponent would have a general form. For p^5-1 and p^7-1 you can divide out a p-1 to make a quartic or sextic. For p^11-1 and p^13-1 a degree halving technique is used to get a quintic or sextic. For p^17-1, p^19-1 and p^23-1 these are troublesome SNFS jobs because of the large coefficients. For sizes suitable for the 14e queue it is better to sieve on the algebraic side. Beginning with p^23-1 and up, these are more traditional SNFS jobs with smallish coefficients. But if the coefficients get too big (say, greater than 7-8 decimal digits) then the algebraic side should be considered. I think I had a large p^31-1 (or a p^29-1) on the -a side not too long ago.

The number you question is a SNFS-235. I had a recent (C179_374xx231_19 - SNFS-239) job that barely fit as a 31-bit job. For some reason the yield was not good at all for the SNFS-235 number. When I bumped it to a 32-bit job, it seemed to be an overkill wth yield above 3:1. To squeeze more yield one can expand the lim’s but that usually only adds about 10% more with a 30% or so penalty in relations time. Another option is to use 3LP on one side. (You can’t use 3LP on both side because GGNFS will barf.) This is more beneficial with OPN numbers. Occasionally the time per rel will slightly decrease but generally one can get a 10-20% bump in yield with only a small penalty in time.

So I decided on a hybrid. Most of my 32-bit post-processing jobs take 2-4 weeks while the 31-bit jobs are around 5-8 days. Split the difference, 2-2.5 weeks??

As [B]Batalov[/B] once said, “try test sieving, you may be missing out on all the fun.”

RichD 2018-09-10 23:03

C206 from the OPN t600 file.
Sieve on ALGEBRAIC side.
[CODE]n: 211729082358149184616654442570096012275452733025471882338226429873172324982177451616911629080660858615779105540909697308361957755666817267484570213046930959867537205284848983532914754295909575808877341405213321228096584089683
# 30027973^31-1, difficulty: 232
lss: 0
c6: 30027973
c0: -1
Y1: -1
Y0: 24413502119045705366054121155817391093
skew: 0.0567
type: snfs
rlim: 134000000
alim: 134000000
lpbr: 31
lpba: 31
mfbr: 62
mfba: 62
rlambda: 2.6
alambda: 2.6[/CODE]
Trial sieving 5K blocks.
[CODE] Q Yield
20M 11749
60M 10345
100M 10445
150M 9273[/CODE]

VBCurtis 2018-09-11 00:39

[QUOTE=RichD;495869]
So I decided on a hybrid. Most of my 32-bit post-processing jobs take 2-4 weeks while the 31-bit jobs are around 5-8 days. Split the difference, 2-2.5 weeks??[/QUOTE]

I think this is a fallacy; LA time scales with input difficulty and barely changes by LP choice. If you take a typical 31LP job and run it as a 32LP job, the matrix will be less than 10% bigger, and can even be smaller. Your 32LP jobs have taken longer because they're much tougher inputs, not because they're 32LP. Half our 14e jobs would sieve faster 1LP bigger, without altering matrix sizes much. Alas, that requires more disk space, so perhaps the current choices are best for the project even though not optimally efficient.

Yield 3.0 sounds quite nice, not overkill! I'm almost certain yield under 2.0 is a sign to go up an LP, while 2.5 to 3.5 is a sign of good parameter selection. This hybrid ended up with yield around 1.0, so something got lost between test-sieve and queue.

RichD 2018-09-11 01:54

[QUOTE=VBCurtis;495883]I think this is a fallacy; LA time scales with input difficulty and barely changes by LP choice. If you take a typical 31LP job and run it as a 32LP job, the matrix will be less than 10% bigger, and can even be smaller. Your 32LP jobs have taken longer because they're much tougher inputs, not because they're 32LP. Half our 14e jobs would sieve faster 1LP bigger, without altering matrix sizes much. Alas, that requires more disk space, so perhaps the current choices are best for the project even though not optimally efficient.

Yield 3.0 sounds quite nice, not overkill! I'm almost certain yield under 2.0 is a sign to go up an LP, while 2.5 to 3.5 is a sign of good parameter selection. This hybrid ended up with yield around 1.0, so something got lost between test-sieve and queue.[/QUOTE]

You are probably correct. My latest job, C208_129_112, built a 23.5M matrix at TD=140 with ETA less than 600 hours.
[CODE]commencing 2-way merge
reduce to 58897286 relation sets and 38285767 unique ideals
commencing full merge
memory use: 3432.8 MB
found 25400232 cycles, need 23563967
weight of 23563967 cycles is about 3299522725 (140.02/cycle)
distribution of cycle lengths:
1 relations: 2474232
2 relations: 1235095
3 relations: 1227937
4 relations: 1234334
5 relations: 1274818
6 relations: 1283572
7 relations: 1292890
8 relations: 1281564
9 relations: 1263155
10+ relations: 10996370
heaviest cycle: 27 relations
commencing cycle optimization
start with 221581438 relations
pruned 14657964 relations
. . .
matrix is 23557761 x 23557961 (12244.6 MB) with weight 3470184645 (147.30/col)
sparse part has weight 2950713788 (125.25/col)
matrix starts at (0, 0)
matrix is 23557761 x 23557961 (12244.6 MB) with weight 3470184645 (147.30/col)
sparse part has weight 2950713788 (125.25/col)
saving the first 48 matrix rows for later
matrix includes 64 packed rows
matrix is 23557713 x 23557961 (11720.7 MB) with weight 3025470142 (128.43/col)
sparse part has weight 2836938274 (120.42/col)
using block size 8192 and superblock size 589824 for processor cache size 6144 kB
commencing Lanczos iteration (4 threads)
memory use: 11228.2 MB
linear algebra at 0.0%, ETA 598h46m[/CODE]

I believe you suggested a yield of 2:1 with an end point of no greater than two times lim, which I thought I followed. My bad.

VBCurtis 2018-09-11 04:11

[QUOTE=RichD;495886]
I believe you suggested a yield of 2:1 with an end point of no greater than two times lim, which I thought I followed. My bad.[/QUOTE]

Well, that job turned out to run Q-range of 390M for 460M relations, which is a yield of less than 1.2. This is just the sort of job I'd run 33LP without a second thought; typically 70% more yield happens, which in this case would be ~2.0. At least you have enough relations to get TD140 to work!
I agree about trying pretty hard to not have to sieve above 2*lim, though I'm coming to question whether setting lim above 268M is a good idea for jobs that sieve to ~600M or so. Siever memory use and matrix difficulty seem to both jump quite a bit when changing a lim from 268M to ~400M.
I'm by no means sure this is correct, but I've been doing the following on both 14e and 15e queues:
If Q max projects to between 130M and 160M, I use 134/134M for lims.
If Q max projects to between 160M and 225M, I use 134/200 for lims (smaller lim on sieving side)
225-300 gets 200/268M (I test 134/268 also)
300-500 gets 268/268M (I may test 268/400)
500+ gets a *lot* of test-sieving and no firm plan, but 268/268 vs 268/400 vs 268/536 vs 400/400 are likely tests.

debrouxl 2018-09-11 06:38

I'm downloading copies of the C228_23827_53, C215_46988659_29 and C179_374xx231_19 raw datasets, all 31-bit LPs 14e tasks. The process should finish by 15 minutes from now; then, the raw datasets can be erased from the server to reduce disk pressure.

RichD 2018-09-11 19:32

There were some concerns earlier about the memory use of the 14e client which was surpassing the guidelines. I guess you can’t make all the people happy all the time. :smile:

One thing I did notice on the more traditional SNFS OPN jobs, where the exponent is above say 40-50 which means the size of the coefficient would only be 4 or 5 digits, one can cut the rlim is half and have no affect on the yield. This might save client memory footprint. And might also save 1-3% in timings.

For example:
[CODE]rlim: 67000000
alim: 134000000
lpbr: 31
lpba: 31
mfbr: 62
mfba: 62
rlambda: 2.6
alambda: 2.6[/CODE]
I suppose I should also look at pushing some of these to 30 or 31-bit jobs on 15e where larger memory usage is expected.


All times are UTC. The time now is 23:11.

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