mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   GMP-ECM (https://www.mersenneforum.org/forumdisplay.php?f=55)
-   -   gmp-4.3.0 is out (https://www.mersenneforum.org/showthread.php?t=11740)

KriZp 2009-04-16 12:47

I hit the same problem, and changed the configure script of gmp-ecm in line 24196 to read
[code] sprintf (buffer, "%d.%d.%d", __GNU_MP_VERSION, __GNU_MP_VERSION_MINOR, __GNU_MP_VERSION_PATCHLEVEL);[/CODE]
instead of
[code] sprintf (buffer, "%d.%d", __GNU_MP_VERSION, __GNU_MP_VERSION_MINOR);[/code]
After that it compiled.

ET_ 2009-04-16 12:47

[QUOTE=M0CZY;169486]I have been trying to compile GMP-ECM using the new GMP-4.3.0 under Linux, but I have hit a snag.

The GMP installs correctly, and passes 'make check', but in the ECM stage, when I get to './configure --with-gmp=/usr/local', it outputs some stuff then finishes with
[code]checking if gmp.h version and libgmp version are the same... (4.3/4.3.0) no
configure: error: 'gmp.h' and 'libgmp' have different versions, you have to reinstall GMP properly.
user@user-desktop:~/ecm-6.2.2$[/code]

I received the same difference in versions when I compiled under Windows using MinGW/Msys, but the program ignored it and continued working.

Could this be a bug in the new version of GMP?[/QUOTE]

Did you try "make install" after "make" and "make check"?

Luigi

xilman 2009-04-16 13:03

[QUOTE=M0CZY;169486]I have been trying to compile GMP-ECM using the new GMP-4.3.0 under Linux, but I have hit a snag.

Could this be a bug in the new version of GMP?[/QUOTE]It's not a bug, it's a mis-feature.

The same change to the GMP version structure has hit the maintainers of a number of other packages similarly. Mail was sent to the GMP developers' list earlier today.

Paul

M0CZY 2009-04-16 13:53

[quote]Did you try "make install" after "make" and "make check"?[/quote]

Yes.
After 'make' and 'make check', under Ubuntu Linux I did 'sudo make install'
and 'make check' again, and it passed all the tests again.
I understand that it installs by default into /usr/local

akruppa 2009-04-16 14:18

Ugh. The new format for the version string (always three parts from now on, including patchlevel even if it's zero) breaks the test. This needs a fix kinda soonish.

Alex

Jeff Gilchrist 2009-04-16 14:20

[QUOTE=CRGreathouse;169430]I was more interested in GMP vs MPIR, but that's good to know. 'Word on the street' was that the last versions of GMP and MPIR were about the same speed; will that still hold, or will GMP pull ahead?[/QUOTE]

They are about the same speed, GMP 4.3.0 is slightly faster now on AMD and Core2 than MPIR 1.1. Here are some benchmarks that use some common functions in a loop:

mpz_mul(t, r, r);
mpz_sub_ui(t, t, 2);
mpz_mod(r, t, p);

[CODE]Intel Xeon E5405 @ 2.0GHz (Family 6, Model 23, Stepping 6)
Linux 64bit, gcc version 4.1.2
83338 bits (25088 digits)
Library Time1 Time2
---------- --------- ---------
GMP 4.3.0 2m34.857s 2m34.835s
MPIR 1.1.0 2m58.627s 2m58.706s
MPIR 1.0.0 3m00.482s 3m00.461s
GMP 4.2.4 5m38.156s 5m38.173s

Intel Xeon E5440 @ 2.83GHz (Family 6, Model 23, Stepping 10)
Linux 64bit, gcc version 4.1.2
83338 bits (25088 digits)
Library Time1 Time2
---------- --------- ---------
GMP 4.3.0 1m49.819s 1m49.436s
MPIR 1.1.0 2m05.877s 2m05.959s
MPIR 1.0.0 2m07.519s 2m07.499s
GMP 4.2.4 3m58.960s 3m58.976s

AMD Opteron 248 @ 2.2GHz (Family 15, Model 37, Stepping 1)
Linux 64bit, gcc version 3.4.6
83338 bits (25088 digits)
Library Time1 Time2
---------- --------- ---------
GMP 4.3.0 1m35.091s 1m34.815s
MPIR 1.1.0 1m36.480s 1m35.923s
MPIR 1.0.0 1m37.501s 1m36.857s
GMP 4.2.4 2m56.352s 2m55.702s[/CODE]

Jeff.

Jeff Gilchrist 2009-04-16 15:03

Here are some GMP-ECM benchmarks comparing the two on Core2. Since --enable-asm-redc is used, GMP is mostly taken out of the equation anyways.

[CODE]Intel Xeon E5405 @ 2.0GHz (Family 6, Model 23, Stepping 6)
Linux 64bit, gcc version 4.1.2, --enable-asm-redc

ECM
Factoring: 1877138824359859508015524119652506869600959721781289179190693027302028679377371001561
B1=20000000
Sigma: 980060817

MPIR 1.1.0
Step 1 took 61816ms | Step 1 took 61889ms
Step 2 took 27306ms | Step 2 took 27222ms

GMP 4.3.0
Step 1 took 58398ms | Step 1 took 58419ms
Step 2 took 26361ms | Step 2 took 26473ms


P-1
Factoring: 1877138824359859508015524119652506869600959721781289179190693027302028679377371001561
B1=20000000
x0: 524328229

MPIR 1.1.0
Step 1 took 5823ms | Step 1 took 5831ms
Step 2 took 6895ms | Step 2 took 6918ms

GMP 4.3.0
Step 1 took 6012ms | Step 1 took 5999ms
Step 2 took 6904ms | Step 2 took 6886ms


P+1
Factoring: 1877138824359859508015524119652506869600959721781289179190693027302028679377371001561
B1=20000000
x0: 524328229

MPIR 1.1.0
Step 1 took 12413ms | Step 1 took 12354ms
Step 2 took 10254ms | Step 2 took 10236ms

GMP 4.3.0
Step 1 took 11844ms | Step 1 took 12221ms
Step 2 took 10294ms | Step 2 took 10259ms
[/CODE]

akruppa 2009-04-18 21:50

An rc for 6.2.3 is at
[url]http://www.loria.fr/~kruppaal/ecm-6.2.3d.tar.gz[/url]

From NEWS:
[CODE]
Changes between ecm-6.2.2 and ecm-6.2.3:
* Fixed incompatibility with GMP 4.3.0 when testing version in configure
* SSE2 asm code for Visual C added in stage 2 NTT code
* Small improvement to x86_64 mulredc asm code, slight speedup on Core 2
* Fixed incorrect carry propagation in subquadratic REDC code which
could lead to incorrect arithmetic in rare cases
* Fixed memory leak with -v parameter when factor was found in ECM stage 1
* Fixed bug which caused only one ECM curve to be run in spite of -c
parameter if input line did not end in newline
* Assembler mulredc code enabled by default on suitable architectures
[/code]

The config.guess/config.sub scripts of autotools were updated, too... I hope this didn't break too much. Tests on different platforms, especially MinGW, MSVC, and Mac would be welcome.

Alex

Jeff Gilchrist 2009-04-19 00:35

[QUOTE=akruppa;169797]The config.guess/config.sub scripts of autotools were updated, too... I hope this didn't break too much. Tests on different platforms, especially MinGW, MSVC, and Mac would be welcome.[/QUOTE]

I have only had a chance to try it on cygwin on a Q9550 Core2 but for some reason configure thinks it is a pentium3 so I don't get any SSE2 code.

Jeff.

akruppa 2009-04-19 00:50

What does uname -m say? If that returns, e.g., i686 as the cpu type, then configure uses Pentium3 code by default. You could override that with configure --build=i786.

Alex

10metreh 2009-04-19 06:24

[quote=akruppa;169797]* Fixed bug which caused only one ECM curve to be run in spite of -c parameter if input line did not end in newline[/quote]

:bow:


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

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