mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   GMP-ECM (https://www.mersenneforum.org/forumdisplay.php?f=55)
-   -   Help needed compiling GMP-ECM (https://www.mersenneforum.org/showthread.php?t=11466)

akruppa 2009-03-18 14:34

Thanks, that's good news. Does tune produce sensible parameters for the NTT now?

Alex

Jeff Gilchrist 2009-03-18 15:26

[QUOTE=akruppa;165882]Thanks, that's good news. Does tune produce sensible parameters for the NTT now?[/QUOTE]

It produced on the Opteron:

#define MPZMOD_THRESHOLD 68
#define REDC_THRESHOLD 512
#define MPN_MUL_LO_THRESHOLD_TABLE {0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 9, 10, 11, 12, 13, 12, 13, 14, 15, 15, 16, 17, 18, 19, 20, 21, 19, 19}
#define NTT_GFP_TWIDDLE_DIF_BREAKOVER 12
#define NTT_GFP_TWIDDLE_DIT_BREAKOVER 17
#define MUL_NTT_THRESHOLD 512
#define PREREVERTDIVISION_NTT_THRESHOLD 32
#define POLYINVERT_NTT_THRESHOLD 1024
#define POLYEVALT_NTT_THRESHOLD 16384
#define MPZSPV_NORMALISE_STRIDE 256

There is no tune for the MSVC builds.

Jeff.

akruppa 2009-03-18 15:34

The DIF breakover looks reasonable now - much better than 7.

Alex

akruppa 2009-03-25 14:36

[QUOTE=fivemack;164850]
But what really surprises me is that oprofile tells me, on a C244 which ought to have mpn_size 13 which is a lot less than REDC_THRESHOLD and on an ECM which I compiled with asmredc enabled, that it's spending 90% of its time in libgmp.[/QUOTE]

I just looked at the code again and it turns out that we don't use mulredc for P-1 stage 1 with large enough B1. I yet need to write a proper sliding window exponentiation for mpmod.
Was that a P-1 run?

Alex

Andi47 2009-09-25 15:27

a bunch of noob questions
 
[QUOTE=henryzz;161855]i didnt know that
i still managed to get 2x speed by running in 64-bit though

i had to install GMP to get GMP-ECM to compile on the 64-bit version of Ubuntu
after i installed GMP 4.2.4 the first time the ./configure for GMP-ECM said i had mismatching versions of gmp.h which it said was 4.2.2 and the other part which it said was 4.2.4
it took quite a bit of fiddling to get it to work

[/QUOTE]

I have installed ubuntu 9.04 on my laptop (not yet connected to internet, because I haven't installed my mobile modem yet) approx. two weeks ago, and want to compile ECM. Questions:

GMP (libgmp3c2, version 2:4.2.4+dfsg-2ubuntu1) is installed, is it save to update to GMP 4.3.1 by running

./configure
make
make check

? (gcc 4.3.3 is installed; does this compiler compile gmp-4.3.1 correctly on a core 2 duo? gmplib.org says that gcc 4.3.[B]2[/B] won't do, so I'm a bit concerned.)

[quote]sudo apt-get install libc6-dev g++ gcc
sudo apt-get install build-essentials
sudo apt-get install m4[/quote]

Which of these do I have to install - or how do I find out if they are already installed? (I know that m4 is not installed, as GMP-ECM was complaining.) When I download them and install them offline, will typing e.g. "install m4" (without "sudo apt-get") do?

Edit: I just managed to connect to internet when running ubuntu, so the questions about installing [I]offline[/I] are obsolete.

henryzz 2009-09-25 16:58

[quote=Andi47;191068][quote]sudo apt-get install libc6-dev g++ gcc
sudo apt-get install build-essentials
sudo apt-get install m4 [/quote]Which of these do I have to install - or how do I find out if they are already installed? (I know that m4 is not installed, as GMP-ECM was complaining.) When I download them and install them offline, will typing e.g. "install m4" (without "sudo apt-get") do?

Edit: I just managed to connect to internet when running ubuntu, so the questions about installing [I]offline[/I] are obsolete.[/quote]
i think the first one is included in build-essentials
m4 is needed for gmp-ecm

Andi47 2009-09-26 14:11

I have now installed m4, then changed to my ECM directory and typed ./configure.
After a lot of lines, the process died after complaining that it can't find gmp.h.

According to synaptics, libgmp3c2 is installed, is this what I'm searching? In which directory is it hidden? (I didn't find it, but I guess, that I need to type [COLOR="Blue"]./configure --with-gmp=<gmp directory>[/COLOR]?) Should I better download and install gmp-4.3.1 from gmplib.org?

Edit: Does gmp-4.3.1 compile correctly with gcc 4.3.3?

Edit: I just tried. after compiling GMP and typing "make", all tests are passed, but I get a few warnings (although the tests after the warnings are passed too.):

[CODE]make[4]: Verlasse Verzeichnis '/home/andreas/GMP/gmp-4.3.1/tests/rand'
make[3]: Verlasse Verzeichnis '/home/andreas/GMP/gmp-4.3.1/tests/rand'
Making check in misc
make[3]: Betrete Verzeichnis '/home/andreas/GMP/gmp-4.3.1/tests/misc'
make t-printf t-scanf t-locale
make[4]: Betrete Verzeichnis '/home/andreas/GMP/gmp-4.3.1/tests/misc'
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../tests -O2 -pedantic -m64 -mtune=core2 -c t-printf.c
t-printf.c: In Funktion »check_n«:
t-printf.c:812: Warnung: ISO-C90 unterstützt nicht »long long«
t-printf.c:812: Warnung: ISO-C90 unterstützt nicht »long long«
t-printf.c:812: Warnung: ISO-C90 unterstützt nicht »long long«
t-printf.c:812: Warnung: ISO-C90 unterstützt nicht »long long«
t-printf.c:812: Warnung: ISO-C90 unterstützt nicht »long long«
/bin/bash ../../libtool --mode=link gcc -O2 -pedantic -m64 -mtune=core2 -o t-printf t-printf.o ../../tests/libtests.la ../../libgmp.la
mkdir .libs
gcc -O2 -pedantic -m64 -mtune=core2 -o .libs/t-printf t-printf.o ../../tests/.libs/libtests.a /home/andreas/GMP/gmp-4.3.1/.libs/libgmp.so ../../.libs/libgmp.so
creating t-printf
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../tests -O2 -pedantic -m64 -mtune=core2 -c t-scanf.c
t-scanf.c: In Funktion »check_n«:
t-scanf.c:1346: Warnung: ISO-C90 unterstützt nicht »long long«
t-scanf.c:1346: Warnung: ISO-C90 unterstützt nicht »long long«
t-scanf.c:1346: Warnung: ISO-C90 unterstützt nicht »long long«
t-scanf.c:1346: Warnung: ISO-C90 unterstützt nicht »long long«
t-scanf.c:1346: Warnung: ISO-C90 unterstützt nicht »long long«
t-scanf.c: In Funktion »check_misc«:
t-scanf.c:1605: Warnung: ISO-C90 unterstützt nicht »long long«
/bin/bash ../../libtool --mode=link gcc -O2 -pedantic -m64 -mtune=core2 -o t-scanf t-scanf.o ../../tests/libtests.la ../../libgmp.la
gcc -O2 -pedantic -m64 -mtune=core2 -o .libs/t-scanf t-scanf.o ../../tests/.libs/libtests.a /home/andreas/GMP/gmp-4.3.1/.libs/libgmp.so ../../.libs/libgmp.so
creating t-scanf
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../tests -O2 -pedantic -m64 -mtune=core2 -c t-locale.c
/bin/bash ../../libtool --mode=link gcc -O2 -pedantic -m64 -mtune=core2 -o t-locale t-locale.o ../../tests/libtests.la ../../libgmp.la
gcc -O2 -pedantic -m64 -mtune=core2 -o .libs/t-locale t-locale.o ../../tests/.libs/libtests.a /home/andreas/GMP/gmp-4.3.1/.libs/libgmp.so ../../.libs/libgmp.so
creating t-locale
make[4]: Verlasse Verzeichnis '/home/andreas/GMP/gmp-4.3.1/tests/misc'
make check-TESTS
make[4]: Betrete Verzeichnis '/home/andreas/GMP/gmp-4.3.1/tests/misc'
PASS: t-printf
PASS: t-scanf
PASS: t-locale
==================
All 3 tests passed
==================
[/CODE]

Is this harmful?

Edit2:

ls
[code]andreas@ubuntu:~/GMP/gmp-4.3.1$ ls
acinclude.m4 config.h errno.lo gmp-h.in macos mp_clz_tab.o mp_set_fns.c randdef.o randmts.c rands.o
aclocal.m4 config.in errno.o gmp-impl.h Makefile mp_dv_tab.c mp_set_fns.lo randiset.c randmts.lo README
ansi2knr.1 config.log extract-dbl.c gmp-mparam.h Makefile.am mp_dv_tab.lo mp_set_fns.o randiset.lo randmts.o scanf
ansi2knr.c config.m4 extract-dbl.lo gmpxx.h Makefile.in mp_dv_tab.o mpz randiset.o randmui.c stamp-h1
assert.c config.status extract-dbl.o INSTALL memory.c mpf NEWS randlc2s.c randmui.lo tal-debug.c
assert.lo config.sub fib_table.h INSTALL.autoconf memory.lo mp_get_fns.c printf randlc2s.lo randmui.o tal-notreent.c
assert.o configure gen-bases install-sh memory.o mp_get_fns.lo randbui.c randlc2s.o rand.o tal-reent.c
AUTHORS configure.in gen-bases.c invalid.c missing mp_get_fns.o randbui.lo randlc2x.c rands.c tal-reent.lo
ChangeLog COPYING gen-fac_ui invalid.lo mp_bases.h mp.h randbui.o randlc2x.lo randsd.c tal-reent.o
compat.c COPYING.LIB gen-fac_ui.c invalid.o mp_bpl.c mp-h.in rand.c randlc2x.o randsd.lo tests
compat.lo cxx gen-fib libgmp.la mp_bpl.lo mp_minv_tab.c randclr.c rand.lo randsd.o tune
compat.o demos gen-fib.c libmp.sym mp_bpl.o mp_minv_tab.lo randclr.lo randmt.c randsdui.c version.c
configfsf.guess doc gen-psqr libtool mpbsd mp_minv_tab.o randclr.o randmt.h randsdui.lo version.lo
configfsf.sub dumbmp.c gen-psqr.c longlong.h mp_clz_tab.c mpn randdef.c randmt.lo randsdui.o version.o
config.guess errno.c [B] gmp.h[/B] ltmain.sh mp_clz_tab.lo mpq randdef.lo randmt.o rands.lo
[/code]

...
cd ecm-6.2.3
./configure --with gmp=/home/andreas/GMP/gmp-4.3.1

[code]...
checking for malloc_usable_size... yes
[B]checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
configure: error: required header file missing
[/B][/code]

huh?? :help:

Andi47 2009-09-27 05:53

[QUOTE=Andi47;191165]
Edit2:

ls
[code]andreas@ubuntu:~/GMP/gmp-4.3.1$ ls
acinclude.m4 config.h errno.lo gmp-h.in macos mp_clz_tab.o mp_set_fns.c randdef.o randmts.c rands.o
aclocal.m4 config.in errno.o gmp-impl.h Makefile mp_dv_tab.c mp_set_fns.lo randiset.c randmts.lo README
ansi2knr.1 config.log extract-dbl.c gmp-mparam.h Makefile.am mp_dv_tab.lo mp_set_fns.o randiset.lo randmts.o scanf
ansi2knr.c config.m4 extract-dbl.lo gmpxx.h Makefile.in mp_dv_tab.o mpz randiset.o randmui.c stamp-h1
assert.c config.status extract-dbl.o INSTALL memory.c mpf NEWS randlc2s.c randmui.lo tal-debug.c
assert.lo config.sub fib_table.h INSTALL.autoconf memory.lo mp_get_fns.c printf randlc2s.lo randmui.o tal-notreent.c
assert.o configure gen-bases install-sh memory.o mp_get_fns.lo randbui.c randlc2s.o rand.o tal-reent.c
AUTHORS configure.in gen-bases.c invalid.c missing mp_get_fns.o randbui.lo randlc2x.c rands.c tal-reent.lo
ChangeLog COPYING gen-fac_ui invalid.lo mp_bases.h mp.h randbui.o randlc2x.lo randsd.c tal-reent.o
compat.c COPYING.LIB gen-fac_ui.c invalid.o mp_bpl.c mp-h.in rand.c randlc2x.o randsd.lo tests
compat.lo cxx gen-fib libgmp.la mp_bpl.lo mp_minv_tab.c randclr.c rand.lo randsd.o tune
compat.o demos gen-fib.c libmp.sym mp_bpl.o mp_minv_tab.lo randclr.lo randmt.c randsdui.c version.c
configfsf.guess doc gen-psqr libtool mpbsd mp_minv_tab.o randclr.o randmt.h randsdui.lo version.lo
configfsf.sub dumbmp.c gen-psqr.c longlong.h mp_clz_tab.c mpn randdef.c randmt.lo randsdui.o version.o
config.guess errno.c [B] gmp.h[/B] ltmain.sh mp_clz_tab.lo mpq randdef.lo randmt.o rands.lo
[/code]

...
cd ecm-6.2.3
./configure --with gmp=/home/andreas/GMP/gmp-4.3.1

[code]...
checking for malloc_usable_size... yes
[B]checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
configure: error: required header file missing
[/B][/code]

huh?? :help:[/QUOTE]

any idea why ./configure complains about a missing gmp.h? If not - can anyone please provide a precompiled binary (compiled with gmp-4.3.1) for Core 2 Duo under linux?

henryzz 2009-09-27 15:22

[quote=Andi47;191165]I have now installed m4, then changed to my ECM directory and typed ./configure.
After a lot of lines, the process died after complaining that it can't find gmp.h.

According to synaptics, libgmp3c2 is installed, is this what I'm searching? In which directory is it hidden? (I didn't find it, but I guess, that I need to type [COLOR=Blue]./configure --with-gmp=<gmp directory>[/COLOR]?) Should I better download and install gmp-4.3.1 from gmplib.org?

Edit: Does gmp-4.3.1 compile correctly with gcc 4.3.3?

Edit: I just tried. after compiling GMP and typing "make", all tests are passed, but I get a few warnings (although the tests after the warnings are passed too.):

[code]make[4]: Verlasse Verzeichnis '/home/andreas/GMP/gmp-4.3.1/tests/rand'
make[3]: Verlasse Verzeichnis '/home/andreas/GMP/gmp-4.3.1/tests/rand'
Making check in misc
make[3]: Betrete Verzeichnis '/home/andreas/GMP/gmp-4.3.1/tests/misc'
make t-printf t-scanf t-locale
make[4]: Betrete Verzeichnis '/home/andreas/GMP/gmp-4.3.1/tests/misc'
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../tests -O2 -pedantic -m64 -mtune=core2 -c t-printf.c
t-printf.c: In Funktion »check_n«:
t-printf.c:812: Warnung: ISO-C90 unterstützt nicht »long long«
t-printf.c:812: Warnung: ISO-C90 unterstützt nicht »long long«
t-printf.c:812: Warnung: ISO-C90 unterstützt nicht »long long«
t-printf.c:812: Warnung: ISO-C90 unterstützt nicht »long long«
t-printf.c:812: Warnung: ISO-C90 unterstützt nicht »long long«
/bin/bash ../../libtool --mode=link gcc -O2 -pedantic -m64 -mtune=core2 -o t-printf t-printf.o ../../tests/libtests.la ../../libgmp.la
mkdir .libs
gcc -O2 -pedantic -m64 -mtune=core2 -o .libs/t-printf t-printf.o ../../tests/.libs/libtests.a /home/andreas/GMP/gmp-4.3.1/.libs/libgmp.so ../../.libs/libgmp.so
creating t-printf
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../tests -O2 -pedantic -m64 -mtune=core2 -c t-scanf.c
t-scanf.c: In Funktion »check_n«:
t-scanf.c:1346: Warnung: ISO-C90 unterstützt nicht »long long«
t-scanf.c:1346: Warnung: ISO-C90 unterstützt nicht »long long«
t-scanf.c:1346: Warnung: ISO-C90 unterstützt nicht »long long«
t-scanf.c:1346: Warnung: ISO-C90 unterstützt nicht »long long«
t-scanf.c:1346: Warnung: ISO-C90 unterstützt nicht »long long«
t-scanf.c: In Funktion »check_misc«:
t-scanf.c:1605: Warnung: ISO-C90 unterstützt nicht »long long«
/bin/bash ../../libtool --mode=link gcc -O2 -pedantic -m64 -mtune=core2 -o t-scanf t-scanf.o ../../tests/libtests.la ../../libgmp.la
gcc -O2 -pedantic -m64 -mtune=core2 -o .libs/t-scanf t-scanf.o ../../tests/.libs/libtests.a /home/andreas/GMP/gmp-4.3.1/.libs/libgmp.so ../../.libs/libgmp.so
creating t-scanf
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../tests -O2 -pedantic -m64 -mtune=core2 -c t-locale.c
/bin/bash ../../libtool --mode=link gcc -O2 -pedantic -m64 -mtune=core2 -o t-locale t-locale.o ../../tests/libtests.la ../../libgmp.la
gcc -O2 -pedantic -m64 -mtune=core2 -o .libs/t-locale t-locale.o ../../tests/.libs/libtests.a /home/andreas/GMP/gmp-4.3.1/.libs/libgmp.so ../../.libs/libgmp.so
creating t-locale
make[4]: Verlasse Verzeichnis '/home/andreas/GMP/gmp-4.3.1/tests/misc'
make check-TESTS
make[4]: Betrete Verzeichnis '/home/andreas/GMP/gmp-4.3.1/tests/misc'
PASS: t-printf
PASS: t-scanf
PASS: t-locale
==================
All 3 tests passed
==================
[/code]Is this harmful?

Edit2:

ls
[code]andreas@ubuntu:~/GMP/gmp-4.3.1$ ls
acinclude.m4 config.h errno.lo gmp-h.in macos mp_clz_tab.o mp_set_fns.c randdef.o randmts.c rands.o
aclocal.m4 config.in errno.o gmp-impl.h Makefile mp_dv_tab.c mp_set_fns.lo randiset.c randmts.lo README
ansi2knr.1 config.log extract-dbl.c gmp-mparam.h Makefile.am mp_dv_tab.lo mp_set_fns.o randiset.lo randmts.o scanf
ansi2knr.c config.m4 extract-dbl.lo gmpxx.h Makefile.in mp_dv_tab.o mpz randiset.o randmui.c stamp-h1
assert.c config.status extract-dbl.o INSTALL memory.c mpf NEWS randlc2s.c randmui.lo tal-debug.c
assert.lo config.sub fib_table.h INSTALL.autoconf memory.lo mp_get_fns.c printf randlc2s.lo randmui.o tal-notreent.c
assert.o configure gen-bases install-sh memory.o mp_get_fns.lo randbui.c randlc2s.o rand.o tal-reent.c
AUTHORS configure.in gen-bases.c invalid.c missing mp_get_fns.o randbui.lo randlc2x.c rands.c tal-reent.lo
ChangeLog COPYING gen-fac_ui invalid.lo mp_bases.h mp.h randbui.o randlc2x.lo randsd.c tal-reent.o
compat.c COPYING.LIB gen-fac_ui.c invalid.o mp_bpl.c mp-h.in rand.c randlc2x.o randsd.lo tests
compat.lo cxx gen-fib libgmp.la mp_bpl.lo mp_minv_tab.c randclr.c rand.lo randsd.o tune
compat.o demos gen-fib.c libmp.sym mp_bpl.o mp_minv_tab.lo randclr.lo randmt.c randsdui.c version.c
configfsf.guess doc gen-psqr libtool mpbsd mp_minv_tab.o randclr.o randmt.h randsdui.lo version.lo
configfsf.sub dumbmp.c gen-psqr.c longlong.h mp_clz_tab.c mpn randdef.c randmt.lo randsdui.o version.o
config.guess errno.c [B] gmp.h[/B] ltmain.sh mp_clz_tab.lo mpq randdef.lo randmt.o rands.lo
[/code]...
cd ecm-6.2.3
./configure --with gmp=/home/andreas/GMP/gmp-4.3.1

[code]...
checking for malloc_usable_size... yes
[B]checking gmp.h usability... no
checking gmp.h presence... no
checking for gmp.h... no
configure: error: required header file missing
[/B][/code]huh?? :help:[/quote]
you need to type:
sudo make install
before anything will be able to find it

Andi47 2009-09-27 15:53

[QUOTE=henryzz;191234]you need to type:
sudo make install
before anything will be able to find it[/QUOTE]

you mean that I should "sudo make install" GMP, before compiling ECM?

Yamato 2009-09-27 17:02

A configuration with

./configure --with-gmp=/home/andreas/GMP/gmp-4.3.1

requires two directories /include and /lib which contain the header file and the library:

/home/andreas/GMP/gmp-4.3.1/include/gmp.h
/home/andreas/GMP/gmp-4.3.1/lib/libgmp.a


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

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