mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Msieve (https://www.mersenneforum.org/forumdisplay.php?f=83)
-   -   Msieve 1.40 Beta Feedback (https://www.mersenneforum.org/showthread.php?t=11553)

tmorrow 2009-03-02 11:52

Msieve 1.40 Beta Feedback
 
Jason, I've downloaded and built 1.40 beta from source. Just offering some feedback as you requested. Build details follow.

Compiled under Windows XP SP3 (32 bit) in a cygwin environment
gcc version 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)

Linked msieve with ECM 6.2.1 and GMP 4.2.4.

[CODE]# Makefile variations for cputype and GMP + ECM includes and static libraries
OPT_FLAGS = -O3 -fomit-frame-pointer -march=k8 -DNDEBUG
CFLAGS += -I/cygdrive/c/tim/mingprojects/ecm/include -I/cygdrive/c/tim/mingprojects/gmp/include
LFLAGS += -L/cygdrive/c/tim/mingprojects/ecm/lib -L/cygdrive/c/tim/mingprojects/gmp/lib

# Build command
make x86 ECM=1 2>&1 | tee build.log
[/CODE]

Compile Warnings (not new, have been there for a long time)

[CODE]gcc -D_FILE_OFFSET_BITS=64 -O3 -fomit-frame-pointer -march=k8 -DNDEBUG -Wall -W -Wconversion -I. -Iinclude -Ignfs/poly -I/cygdrive/c/tim/mingprojects/ecm/include -I/cygdrive/c/tim/mingprojects/gmp/include -DHAVE_GMP_ECM -DHAVE_GMP -c -o common/fastmult.o common/fastmult.c
common/fastmult.c: In function `fastmult_info_free':
common/fastmult.c:73: warning: passing arg 1 of `dd_clear_precision' with different width due to prototype

gcc -D_FILE_OFFSET_BITS=64 -O3 -fomit-frame-pointer -march=k8 -DNDEBUG -Wall -W -Wconversion -I. -Iinclude -Ignfs/poly -I/cygdrive/c/tim/mingprojects/ecm/include -I/cygdrive/c/tim/mingprojects/gmp/include -DHAVE_GMP_ECM -DHAVE_GMP -Ignfs -c -o gnfs/poly/polyutil.no gnfs/poly/polyutil.c
gnfs/poly/polyutil.c: In function `analyze_one_poly':
gnfs/poly/polyutil.c:145: warning: passing arg 1 of `dd_clear_precision' with different width due to prototype

gcc -D_FILE_OFFSET_BITS=64 -O3 -fomit-frame-pointer -march=k8 -DNDEBUG -Wall -W -Wconversion -I. -Iinclude -Ignfs/poly -I/cygdrive/c/tim/mingprojects/ecm/include -I/cygdrive/c/tim/mingprojects/gmp/include -DHAVE_GMP_ECM -DHAVE_GMP -Ignfs -c -o gnfs/poly/stage2/stage2.no gnfs/poly/stage2/stage2.c
gnfs/poly/stage2/stage2.c: In function `poly_stage2_run':
gnfs/poly/stage2/stage2.c:257: warning: passing arg 1 of `dd_clear_precision' with different width due to prototype
[/CODE]

Since dd_precision (from dd.h) is being defined on this platform as "typedef uint16 dd_precision_t;", the -Wconversion option is raising those warnings. Unless you've got a special need for it you might consider removing the -Wconversion option from WARN_FLAGS in your Makefile. With modern code this option is not normally useful - see for example
[url]http://sourceware.org/ml/glibc-linux/2000-q2/msg00083.html[/url]
[url]http://gcc.gnu.org/ml/gcc/2002-12/msg01431.html[/url]

Feature request - Have msieve indicate which versions (if used) of GMP & ECM that msieve was linked with.

I have not yet conducted extensive tests on 1.40 yet.

I'll build msieve 1.40 on a emt x64 RHat5 Linux server tomorrow and let you know how it goes.

akruppa 2009-03-02 14:17

I'm not really sure if this is something you planned to fix in 1.40, but I ran poly selection on the c160 of 3,527- again, and I still get lots of "warning: skipping corrupt polynomial" messages. So far after 90 minutes search, no valid poly seems to be found.

Alex

jasonp 2009-03-02 17:05

tmorrow: -Wconversion catches lots of issues like function arguments to GMP calls that are not properly cast to mp_limb_t when this is a 64-bit type. In many cases the code doing the calling must take special measures when this is the case, so I prefer to keep it on. Most of the time it's just really verbose, and the warnings are harmless, but occaisionally it points out something I've forgotten.

Alex: I'd forgotten about your problems. Could you PM me the input number and which platform and gcc version you're running? The numerical integration code is probably the culprit here, it's much more robust in v1.40 but even in my internal tests it still occaisionally fails.

Jeff Gilchrist 2009-03-02 17:10

When you type just "make" you get this output:

[CODE]pick a target:
x86 32-bit Intel/AMD systems (required if gcc used)
x86_64 64-bit Intel/AMD systems (required if gcc used)
generic portable code
also add 'ECM=1' if GMP-ECM is available or you want the
advanced NFS polynomial selection
[/CODE]

Do you actually need ECM=1 to do NFS poly selection or just GMP (so GMP=1 would work)?

If the latter could you modify that output to be something like:

[CODE]add 'ECM=1' if GMP-ECM is available (enables ECM and
advanced NFS polynomial selection)
or add 'GMP=1' if only GMP is available and you want the
advanced NFS polynomial selection[/CODE]

jasonp 2009-03-02 17:25

I'll make the change; I've tried to keep it short because in MinGW, 'make' takes [i]forever[/i] to echo text lines, like two per second max. That's not a sufficient excuse in this case because many have been confused about compiling the new poly selection.

PS: Brian Gladman has already pointed out that the MSVC code needs some fixing too, looks like I'll need to post an update tonight.

akruppa 2009-03-02 17:33

I hadn't compiled with ECM=1 nor GMP=1, I'll try again.

Alex

10metreh 2009-03-02 17:51

That old timer is having problems again:

[code]Mon Mar 02 17:23:04 2009
Mon Mar 02 17:23:04 2009
Mon Mar 02 17:23:04 2009 Msieve v. 1.40
Mon Mar 02 17:23:04 2009 random seeds: 0010f447 0021e88e
Mon Mar 02 17:23:04 2009 factoring 3046940677438483872492570557601426992994034892890836252574868172241908349534364214600428141457053 (97 digits)
Mon Mar 02 17:23:06 2009 searching for 15-digit factors
Mon Mar 02 17:23:09 2009 commencing number field sieve (97-digit input)
Mon Mar 02 17:23:09 2009 R0: -6102425988474888054
Mon Mar 02 17:23:09 2009 R1: 9564234367
Mon Mar 02 17:23:09 2009 A0: 407934978221462444764895
Mon Mar 02 17:23:09 2009 A1: -154209112521686219328
Mon Mar 02 17:23:09 2009 A2: -7261393706314151
Mon Mar 02 17:23:09 2009 A3: 1675925509656
Mon Mar 02 17:23:09 2009 A4: 25858416
Mon Mar 02 17:23:09 2009 A5: 360
Mon Mar 02 17:23:09 2009 skew 10703.18, size 3.876917e-009, alpha -6.133547, combined = 5.255935e-009
Mon Mar 02 17:23:09 2009
Mon Mar 02 17:23:09 2009 commencing relation filtering
Mon Mar 02 17:23:09 2009 commencing duplicate removal, pass 1
Mon Mar 02 17:23:20 2009 error -15 reading relation 301787
Mon Mar 02 17:23:28 2009 error -11 reading relation 601316
Mon Mar 02 17:23:43 2009 error -15 reading relation 1034599
Mon Mar 02 17:23:45 2009 error -4 reading relation 1066768
Mon Mar 02 17:23:49 2009 found 69307 hash collisions in 1216878 relations
Mon Mar 02 17:24:08 2009 added 462 free relations
Mon Mar 02 17:24:08 2009 commencing duplicate removal, pass 2
Mon Mar 02 17:24:14 2009 found 68434 duplicates and 1148906 unique relations
Mon Mar 02 17:24:14 2009 memory use: 33.2 MB
Mon Mar 02 17:24:16 2009 reading rational ideals above 851968
Mon Mar 02 17:24:16 2009 reading algebraic ideals above 851968
Mon Mar 02 17:24:16 2009 commencing singleton removal, pass 1
Mon Mar 02 17:29:16 2009 relations with 0 large ideals: 17926
Mon Mar 02 17:29:34 2009 relations with 1 large ideals: 150065
Mon Mar 02 17:29:34 2009 relations with 2 large ideals: 405869
Mon Mar 02 17:29:34 2009 relations with 3 large ideals: 405233
Mon Mar 02 17:29:34 2009 relations with 4 large ideals: 142375
Mon Mar 02 17:29:34 2009 relations with 5 large ideals: 14382
Mon Mar 02 17:29:34 2009 relations with 6 large ideals: 13055
Mon Mar 02 17:29:34 2009 relations with 7+ large ideals: 1
Mon Mar 02 17:29:34 2009 1148906 relations and about 1427416 large ideals
Mon Mar 02 17:29:35 2009 commencing singleton removal, pass 2
Mon Mar 02 17:31:29 2009 found 750409 singletons
Mon Mar 02 17:31:47 2009 current dataset: 398497 relations and about 413553 large ideals
Mon Mar 02 17:31:55 2009 commencing singleton removal, pass 3
Mon Mar 02 17:33:34 2009 found 172902 singletons
Mon Mar 02 17:33:44 2009 current dataset: 225595 relations and about 203432 large ideals
Mon Mar 02 17:33:52 2009 commencing singleton removal, final pass
Mon Mar 02 17:35:24 2009 memory use: 4.2 MB
Mon Mar 02 17:35:26 2009 commencing in-memory singleton removal
Mon Mar 02 17:35:26 2009 begin with 225594 relations and 205228 unique ideals
Mon Mar 02 17:35:26 2009 reduce to 83783 relations and 48307 ideals in 22 passes
Mon Mar 02 17:35:26 2009 max relations containing the same ideal: 15
Mon Mar 02 17:35:29 2009 reading rational ideals above 425984
Mon Mar 02 17:35:29 2009 reading algebraic ideals above 425984
Mon Mar 02 17:35:29 2009 commencing singleton removal, final pass
Mon Mar 02 17:35:34 2009 keeping 102447 ideals with weight <= 20, new excess is 72011
Mon Mar 02 17:35:34 2009 memory use: 4.3 MB
Mon Mar 02 17:35:35 2009 commencing in-memory singleton removal
Mon Mar 02 17:35:35 2009 begin with 84916 relations and 102447 unique ideals
Mon Mar 02 17:35:35 2009 reduce to 3257 relations and 1830 ideals in 13 passes
Mon Mar 02 17:35:35 2009 max relations containing the same ideal: 5
Mon Mar 02 17:35:35 2009 filtering wants 246315 more relations
Mon Mar 02 17:35:35 2009 elapsed time [COLOR=red]00:02:20[/COLOR][/code]

This is for a C97 from alq(130396.1948), but the "elapsed time" should be 00:12:31. I started on normal priority, but switched it quickly to low. Could this be the cause of the problem?

Jeff Gilchrist 2009-03-02 17:52

[QUOTE=jasonp;164407]PS: Brian Gladman has already pointed out that the MSVC code needs some fixing too, looks like I'll need to post an update tonight.[/QUOTE]

I haven't had a chance to try the Windows compile yet, but MSVC would build 1.39 but the poly code was broken (in the 64bit version at least) so if he can fix 1.40 that would be a huge benefit.

jasonp 2009-03-02 18:01

[QUOTE=10metreh;164414]
This is for a C97 from alq(130396.1948), but the "elapsed time" should be 00:12:31. I started on normal priority, but switched it quickly to low. Could this be the cause of the problem?[/QUOTE]

Yes, the code now measures CPU time and not calendar time. I guess the end-to-end time needs to use the wall clock and everything else needs to use CPU elapsed time. You can fight it out with andi47 :)

Jeff, figuring out what's wrong with NFS poly selection in 64-bit MSVC will take remote debugging that I don't have the time to do. THe problems he reported are strictly the result of a lot of churn in the source over the last three months.

akruppa 2009-03-02 20:22

With GMP=1, there are no error messages. It didn't find any polynomial so far, I aborted after 2 hours. Is there something I can do to get some (suboptimal) polynomials quickly, just to see that it works?

Alex

XYYXF 2009-03-02 20:50

[QUOTE=jasonp;164357]- A fix for a typo that made QS a lot slower[/QUOTE]So now QS became much faster?


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

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