mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Msieve (https://www.mersenneforum.org/forumdisplay.php?f=83)
-   -   Installation of GGNFS (https://www.mersenneforum.org/showthread.php?t=21948)

LegionMammal978 2017-01-18 01:24

Installation of GGNFS
 
Currently trying to set up GGNFS/Msieve on Ubuntu as according to [URL="http://gilchrist.ca/jeff/factoring/nfs_beginners_guide.html"]this guide[/URL]. I downloaded and unzipped the GGNFS repo [URL="https://sourceforge.net/p/ggnfs/code/HEAD/tree/"]here[/URL] and tried to compile it as described by the INSTALL file. However, running make in the top-level directory didn't work:

[CODE]$ make
Possible targets are:
pentium2 Intel Pentium 2
pentium3 Intel Pentium 3
pentium4 Intel Pentium 4
prescott Intel Pentium 4 with SSE3
pentium-m Intel Pentium M
athlon AMD Athlon (k7)
athlon-xp AMD Athlon XP (k7) with SSE
x86_64 AMD Opteron/Athlon64 (k8)
nocona Intel 64-bit-capable Xeon/Pentium
ppc_970 PowerPC 970
ppc_7450 PowerPC 7450
doc Documentation
snapshot Sources snapshot
install Installation
clean Clean up[/CODE]As suggested, I moved into the src folder and tried again, but it still didn't compile:

[CODE]$ make
cc -I. -I.. -I../include -DNDEBUG -O3 -funroll-loops -finline-functions -ftracer -fomit-frame-pointer -W -Wall -march= -pipe -DMALLOC_REPORTING -DGMP_BUG -o getprimes.o -c getprimes.c
cc: error: missing argument to ‘-march=’
Makefile:91: recipe for target 'getprimes.o' failed
make: *** [getprimes.o] Error 1[/CODE]What am I doing wrong?

jasonp 2017-01-18 02:48

You need to use 'make <target_from_that_list>' in the top level directory. But practically speaking nobody uses the GGNFS source distribution anymore, the entire codebase is there to host the Franke/Kleinjung sieving tool and a few utilities. You can find precompiled binaries for the siever plus instructions for use [url="http://gilchrist.ca/jeff/factoring/nfs_beginners_guide.html"]here[/url].

LegionMammal978 2017-01-18 22:00

[QUOTE=jasonp;451143]You can find precompiled binaries for the siever plus instructions for use [URL="http://gilchrist.ca/jeff/factoring/nfs_beginners_guide.html"]here[/URL].[/QUOTE]

I've looked at that, and it seems to contain the gnfs-lasieve files. I've been able to compile the Msieve binary from source, but what about all the other files in the sample directory there? Do I just have to put factmsieve.py in the same folder as the msieve executable and the gnfs-lasieve files?

Also, unrelated question: I have GMP-ECM installed, but Msieve refuses to compile with the ECM=1 flag:

[CODE]$ make all ECM=1
[...]
common/smallfact/gmp_ecm.o common/smallfact/gmp_ecm.c
common/smallfact/gmp_ecm.c:35:17: fatal error: ecm.h: No such file or directory
compilation terminated.
Makefile:290: recipe for target 'common/smallfact/gmp_ecm.o' failed
make: *** [common/smallfact/gmp_ecm.o] Error 1[/CODE]Is this also obsolete?

jasonp 2017-01-18 22:19

ecm.h is the header that GMP-ECM provides for a basic application-level interface to the core of their library. It's possible that ecm.h is not considered suitable to be an installed output of the library, or the ECM package on your machine doesn't include it. For RedHat systems you probably would need an ecm-devel package or some such, if you didn't build it yourself.

Personally, I use msys2 on windows and build GMP-ECM, then manually move the compiled library and ecm.h to a directory that I know is in gcc's include path.

My understanding with GGNFS is that you don't need any of the binaries that are built except the siever. It has no dependencies on the other parts of the distribution.

LegionMammal978 2017-01-18 23:40

[QUOTE=jasonp;451187]ecm.h is the header that GMP-ECM provides for a basic application-level interface to the core of their library. It's possible that ecm.h is not considered suitable to be an installed output of the library, or the ECM package on your machine doesn't include it. For RedHat systems you probably would need an ecm-devel package or some such, if you didn't build it yourself.[/QUOTE]

This has gotten crazy. I compiled GMP-ECM from source and put ecm.h in the include folder. However, now it's saying:

[CODE]/usr/bin/ld: cannot find -lecm[/CODE]Not sure what its problem is...

wombatman 2017-01-19 00:09

Did you do "make install"?

LegionMammal978 2017-01-19 00:54

[QUOTE=wombatman;451195]Did you do "make install"?[/QUOTE]

[CODE]$ make install ECM=1
make: *** No rule to make target 'install'. Stop.[/CODE]

I used 'make all ECM=1'.

wombatman 2017-01-19 01:04

Sorry, I meant when you compiled GMP-ECM. Usually goes something like "make; make check; make install".

Edit: The other thing I would add is that there's not really much point to compiling MSieve with ECM=1. It only checks for very small factors (15 digits, maybe?) that you should be finding with GMP-ECM or YAFU before Msieve comes into the picture.

LegionMammal978 2017-01-19 01:54

I finally got factmsieve.py working. Thanks!

wombatman 2017-01-19 02:19

[QUOTE=LegionMammal978;451198]I finally got factmsieve.py working. Thanks![/QUOTE]

Excellent! :smile:

LegionMammal978 2017-01-19 02:39

Also, just curious, the Python script describes Msieve GPU support, is that anything I should care about?


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

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