View Single Post
Old 2016-10-16, 01:35   #1
GP2's Avatar
Sep 2003

1010000110112 Posts
Default GMP-ECM with --enable-openmp flag set in configure = bad results?

In the README file for GMP-ECM, it mentions using the possibility of using the --enable-openmp flag with the configure command. This enables multithreading and greater parallelism in stage 2.

I ran configure with this flag and compiled 7.0.4, and "make check" indicated the tests were passed. However, when I tried testing it, it missed a P-1 factor it should have found.

First I ran:

echo "2^20173-1" | ./ecm -pm1 -save toto.txt 50e6 50e6
which finds the composite factor 237664504975279983867404174809 = 121039 * 525947712473 * 3733330406447, which are the first three factors of M20173 (2,20173−)

Then I ran:

./ecm -resume toto.txt 50e6 150e6
This choice of B1 and B2 should find the fourth factor
= 2kp + 1, k = 3 × 449773 × 628373 × 49835969 × 142103537

However, ecm-7.0.4 configured with --enable-openmp does not find this fourth factor, whereas ecm-7.0.3 configured without --enable-openmp does find it.

This was using gcc 4.8 on Linux, which presumably implies support of OpenMP 3.1, which are both somewhat outdated versions, but these are standard on Amazon Linux.

The save file toto.txt is included as an attachment. The second command above (stage 2) takes only a few seconds to complete.

Is there any more extensive test suite for gmp-ecm beyond what is provided by "make check" ?
Attached Files
File Type: txt toto.txt (5.1 KB, 105 views)
GP2 is offline   Reply With Quote