mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Msieve (https://www.mersenneforum.org/forumdisplay.php?f=83)
-   -   Feedback for new MPQS utility sought (https://www.mersenneforum.org/showthread.php?t=3240)

xilman 2004-12-13 16:55

[QUOTE=JHansen]Or, continuing on Paul's suggestion, take a look at the Lanczos code for NFS.

One thing that has bothered me some time now, is that none of the major NFS implementations (GGNFS,CWI and Franke et. al.) have support for running the linear algebra on more then one CPU. I've recently completed a matrix, and that took me 24 days. I'm sure this figure could be brought down a lot if I had been able to use all four CPU's on the computer.

I know NFSNET has a parallel version of the lanczos code from CWI, but is that is heavily licenced, and not availlable to us mere mortals. :rolleyes:
[/QUOTE]That would be a worthy achievement, indeed.

Another suggestion: write fast and memory-efficient programs to remove duplicates and singletons from a collection of relations. Remember that singletons occur in prime ideals, not in primes (except for linear polynomials where they are the same) and so if a prime occurs once in each of two different relations, it could belong to different ideals and so both relations would be removed. Remember, also, that prime ideals on one side do not match those on the other.

Ensure that your code works correctly on 32-bit machines with limited physical memory, where the maximum file size may be smaller than the total space taken up by the collection and the prime ideals in the relations may be up to, say, 48 bits in size. That is, you should be able to specify maximum memory use and maximum file size to be used and not assume that a prime will fit into a long int.

A somewhat more challenging project: write a filter/merge program that's less resource-hungry than the CWI version and/or creates a smaller matrix without increasing its density unduly.

I don't ask for much, do I?

Paul

rogue 2004-12-13 17:05

I could add support for msieve to the next release of ECMNet (the 2.6 release, not the upcoming 2.5 release). That would make a few people happy...

jasonp 2004-12-13 17:18

[QUOTE=akruppa]Dear Jason,

would you like to add an API so your code can be included in other packages? I've compared msieve to the MPQS included in Pari/GP on a c60, yours took 113s while gp took 502s, almost four times as long. Perhaps the Pari group would like to include your code in gp?
[/QUOTE]

An external API shouldn't be difficult at all.

What machine was this on? My 1GHz K7 can factor a C60 in ~22 seconds.

jasonp

akruppa 2004-12-13 17:33

A Pentium-3 500 MHz, built with gcc 3.4 and -march petium3.

Alex

hbock 2004-12-13 18:26

Just finished a test with the Win binary on a current C98 from the [URL=http://xyyxf.at.tut.by/]XYYXF-Project[/URL] (remaining composite factor of 135^129+129^135) :

[QUOTE]Msieve v. 0.87
random seeds: 00000148 41bcbb76
input to factor: factoring 55306274586393503759204077009511216978122667363582888
891525962393354443122157897021114787184932999
Sun Dec 12 22:43:18 2004
using multiplier of 7
Sun Dec 12 22:43:21 2004
using sieve block of 65536
using a sieve bound of 1813003 (67752 primes)
using large prime bound of 431494714
using double large prime bound of 3491048112625402


sieving in progress (press Ctrl-C to pause)
found 67939 relations (15100 full + 52839 partial), need 67880
begin with 1305275 relations
reduce to 170230 relations in 12 passes
attempting to read 15100 full and 170230 partial relations
recovered 15100 full and 170230 partial relations
recovered 183463 polynomials
attempting to build 52839 cycles
found 52838 cycles in 6 passes
distribution of cycle lengths:
length 2 : 11363
length 3 : 11488
length 4 : 9396
length 5 : 7282
length 6 : 5002
length 7 : 3307
length 8 : 2080
length 9+: 2920
largest cycle: 21 relations
Mon Dec 13 17:10:26 2004
67752 x 67816 system, weight 4825745 (avg 71.16/col)
reduce to 67116 x 67180 in 3 passes
lanczos halted after 1064 iterations
recovered 62 nontrivial dependencies
Mon Dec 13 17:15:03 2004
probable prime factor: 670835676887414404450531442698119811
probable prime factor: 82443848012089991282671595442342852949675881896980280729217709
Mon Dec 13 17:16:06 2004[/QUOTE]
Found the P36 within 18.5 h on my XP2400+, very impressive, thanks for the great tool !
Size of the final msieve.dat file was about 99 MB.

akruppa 2004-12-13 21:20

There's a typo in my earlier posting: the msieve time for the c60 was 133s, not 113.

I tried to reproduce which number exactly I factored, I think it was 314159265358979323846264338328907078125461821459237067283727 = 314159265358979323846264338311 * 1000000000000000000000000000057

A new run took 128s on my Pentium-III. Unfortunately I have no Athlon available to compare timings with the 22s you mentioned.

Alex

ET_ 2004-12-13 21:43

[QUOTE=akruppa]There's a typo in my earlier posting: the msieve time for the c60 was 133s, not 113.

I tried to reproduce which number exactly I factored, I think it was 314159265358979323846264338328907078125461821459237067283727 = 314159265358979323846264338311 * 1000000000000000000000000000057

A new run took 128s on my Pentium-III. Unfortunately I have no Athlon available to compare timings with the 22s you mentioned.

Alex[/QUOTE]

[code]
Msieve v. 0.87
random seeds: 00000d48 41be0c8a
input to factor: 314159265358979323846264338328907078125461821459237067283727
factoring 314159265358979323846264338328907078125461821459237067283727
Mon Dec 13 22:41:49 2004
using multiplier of 3
Mon Dec 13 22:41:49 2004
using sieve block of 65536
using a sieve bound of 56527 (2882 primes)
using large prime bound of 2769823


sieving in progress (press Ctrl-C to pause)
found 3072 relations (1414 full + 1658 partial), need 3010
begin with 13346 relations
reduce to 3077 relations in 2 passes
attempting to read 1414 full and 3077 partial relations
recovered 1414 full and 3077 partial relations
recovered 3742 polynomials
attempting to build 1658 cycles
found 1658 cycles in 1 passes
distribution of cycle lengths:
length 2 : 1658
largest cycle: 2 relations
Mon Dec 13 22:42:02 2004
2882 x 2946 system, weight 73985 (avg 25.11/col)
reduce to 2727 x 2791 in 3 passes
lanczos error: not all columns used
lanczos halted after 44 iterations
linear algebra failed; retrying...
lanczos halted after 45 iterations
recovered 62 nontrivial dependencies
Mon Dec 13 22:42:03 2004
probable prime factor: 314159265358979323846264338311
probable prime factor: 1000000000000000000000000000057
Mon Dec 13 22:42:04 2004

[/code]

15 seconds with an Athlon XP 2100+

Luigi

hbock 2004-12-13 22:28

13 s with an XP 2400+ (2 GHz).

rogue 2004-12-14 00:38

17 s with PowerMac G5 2.5 GHz (in 32-bit mode)

ET_ 2004-12-14 00:52

103 seconds on a Celeron 1.8 GHz

Luigi

jasonp 2004-12-14 14:14

gcc bug?
 
If all you involuntary beta testers could do me a favor...

I think I've finally tracked down a nasty bug in the cycle-
finding code, and it seems to be compiler-dependent

If you have logs from old factorizations using 0.86 or
0.87 lying around, look for the lines that read:

(X full + Y partial)

[...]

attempting to build Y1 cycles

[...]

found Y2 cycles in Z passes

Correct operation requires Y, Y1 and Y2 to all be the same. Some
of the published reports from big factorizations, however, have all
these numbers different. If Y2 > Y1 you have a memory leak at best,
and possibly a buffer overflow.

I use gcc 3.4.1 locally and have never had this problem. The problem
occurs with bleeding-edge gcc 4.0 with optimization turned on (but not
if optimization is turned off). Are there other gcc versions for which you
see this symptom occur?

FWIW the win32 binary is built with gcc 3.4.1; if you've seen the
problem with the prebuilt msieve.exe I'd be really interested to hear it.

<sigh> This is hard enough without having to fight one's tools.

jasonp


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

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