mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Msieve (https://www.mersenneforum.org/forumdisplay.php?f=83)
-   -   Feedback for new MPQS utility sought (https://www.mersenneforum.org/showthread.php?t=3240)

jasonp 2004-12-11 03:35

Msieve 0.87 available
 
New version just uploaded. Highlights include:

- big changes in the sieving stage, that are very complicated but
provide a hefty speedup. Most of my QA factorizations are 15-20%
faster, but my c100 test case is almost twice as fast, just 17.5 hours.
I personally think it's a fluke number; only other factorizations will tell

- a different (regrettably incompatible) savefile format that greatly
reduces the size of savefiles

- batch mode

- a Makefile

- several small bug fixes, lots of new documentation

Happy factoring,
jasonp

smh 2004-12-11 13:00

[QUOTE]That information can be inferred from the timestamps sprinkled through
the output. It looks like ~39 hours.

Maybe I can take a lesson from ppsiqs.exe, which saves durations in
its savefiles, and can give you an accurate runtime even if it was halted
during the run.[/QUOTE]

I know the total runtime can be taken from the log, but it would take the program probably not more than a few miliseconds to calculate the ellapsed time.

Of course, keeping track of the runtime in the save file would be even better. I have 1 or 2 slow cpu's which take days to do a factorization. It would be great to see how long the factorization actually took, even afetr interuptions.

I'll try the new version tonight

ET_ 2004-12-11 15:59

[QUOTE=smh]What cpu was used?

Jason, can you make a next version print the time it took to do the factorization?[/QUOTE]

I used a "part-time" Athlon 2100+ XP :-P

Luigi

ET_ 2004-12-11 16:02

[QUOTE=jasonp]New version just uploaded. Highlights include:

- big changes in the sieving stage, that are very complicated but
provide a hefty speedup. Most of my QA factorizations are 15-20%
faster, but my c100 test case is almost twice as fast, just 17.5 hours.
I personally think it's a fluke number; only other factorizations will tell

- a different (regrettably incompatible) savefile format that greatly
reduces the size of savefiles

- batch mode

- a Makefile

- several small bug fixes, lots of new documentation

Happy factoring,
jasonp[/QUOTE]

This means that I can't interrupt my sieving started with msieve 0.86 and continue it with version 0.87... :sad:

Luigi

ET_ 2004-12-11 17:24

Another question: did anybody test the Win32 binaries on a P4? it seems far slower than running it on an Athlon...

If no one did, I'll try and compile a P4 0.87 version under Cygwin.

Luigi

jasonp 2004-12-11 18:03

[QUOTE=ET_]Another question: did anybody test the Win32 binaries on a P4? it seems far slower than running it on an Athlon...

If no one did, I'll try and compile a P4 0.87 version under Cygwin.
[/QUOTE]
Msieve is way too slow on a P4. Fixing that (if possible) would require
a lot of quality time with one. Of course if you could get the core sieving
code to use SSE2 (or MMX or Altivec or whatever) not only would it help
a great deal, it would probably be worth a publication.

To answer your other question, 0.87 unfortunately cannot restart with
0.86's savefiles.

For the record, I have two other c100's underway, and they're ~40% done
after 13 hours. So my superfast c100 time appears to be a fluke.

jasonp

error404 2004-12-12 12:24

106 415 has a factor ...
 
Hi Jason,

I used three different computers for my first try with 0.87 and
everything worked correctly.


SIQS found P48 and P49.
[code]
Factorizations of Cyclotomic Numbers
[url]http://www.asahi-net.or.jp/~KC2H-MSM/cn/index.htm[/url]

(106 415 (107 513939941 2139265982831 365899366084796321) (C 96))

g4-867:~/Desktop/QS08 k5gj$ ./cyclotomic 106 415
13723212714764211893842571979805577519813962098426765325603587556197131075045661485623535541141156032235662096332781892180299529662499061
g4-867:~/Desktop/QS08 k5gj$

n = 13723212714764211893842571979805577519813962098426765325603587556197131075045661485623535541141156032235662096332781892180299529662499061
w = n ÷ 107;
x = w ÷ 513939941;
y = x ÷ 2139265982831;
z = y ÷ 365899366084796321

Out[2]:= 318810931824350089603496873449091927715882749575887966364423318942890168072543614241539805612253
Out[3]:= False
Out[4]:= 96

/******************************************************************************/

Gigabyte GA-K8VT800M motherboard (AMD64-3400+)
K8-2200, 64K L1, 1M L2, BUS 200 MHz, 2048M DDR400 PC3200

gigabyte# uname -a
FreeBSD gigabyte.dl.cox.net 5.3-RELEASE-p2 FreeBSD 5.3-RELEASE-p2 #0: Sun Dec 5 13:02:41 CST 2004
[email]root@gigabyte.dl.cox.net[/email]:/usr/src/sys/amd64/compile/MYKERNEL amd64
gigabyte#
gigabyte#
gigabyte# gcc40 -v Reading specs from /usr/local/lib/gcc/x86_64-portbld-freebsd5.3/4.0.0/specs
Configured with: ./..//gcc-4.0-20041128/configure --disable-nls --with-system-zlib --with-libiconv-prefix=/usr/local --program-suffix=40 --with-gxx-include-dir=/usr/local/lib/gcc/x86_64-portbld-freebsd5.3/4.0.0/include/c++/ --disable-shared --disable-libgcj --prefix=/usr/local x86_64-portbld-freebsd5.3
Thread model: posix
gcc version 4.0.0 20041128 (experimental) [FreeBSD]
gigabyte#
gigabyte#
gigabyte# gcc40 -O3 -march=k8 -m64 *.c -o qs087 -lm
gigabyte#
gigabyte#
gigabyte#
gigabyte# ./qs087 < c96.txt

Msieve v. 0.87
random seeds: 00000255 41bb66dd
input to factor: factoring 318810931824350089603496873449091927715882749575887966364423318942890168072543614241539805612253
Sat Dec 11 15:30:05 2004
using multiplier of 1
Sat Dec 11 15:30:07 2004
using sieve block of 65536
using a sieve bound of 1753069 (65882 primes)
using large prime bound of 308540144
using double large prime bound of 1908802421804784

sieving in progress (press Ctrl-C to pause)
found 6 relations (6 full + 0 partial), need 66010
found 11 relations (11 full + 0 partial), need 66010
|
|
found 4715 relations (3753 full + 962 partial), need 66010
found 4723 relations (3758 full + 965 partial), need 66010
^C
received signal 2; shutting down
found 4744 relations (3776 full + 968 partial), need 66010
found 4744 relations (3776 full + 968 partial), need 66010
Sat Dec 11 18:02:16 2004
gigabyte#




Motorola PPc-7455 (Titanium)
G4-867, 256K L2, 1M L3, 768M PC133, Bus 133MHz

g4-867:~/Desktop/QS08 k5gj$ uname -a
Darwin g4-867.k5gj 7.6.0 Darwin Kernel Version 7.6.0: Sun Oct 10 12:05:27 PDT 2004; root:xnu/xnu-517.9.4.obj~1/RELEASE_PPC Power Macintosh powerpc
g4-867:~/Desktop/QS08 k5gj$
g4-867:~/Desktop/QS08 k5gj$
g4-867:~/Desktop/QS08 k5gj$ /usr/local/bin/gcc34 -v
Reading specs from /usr/local/lib/gcc/powerpc-apple-darwin7.6.0/3.4.4/specs
Configured with: /usr/gcc-3.4-20041119/./configure --program-suffix=34 --enable-languages=c --disable-nls
Thread model: posix
gcc version 3.4.4 20041119 (prerelease)
g4-867:~/Desktop/QS08 k5gj$
g4-867:~/Desktop/QS08 k5gj$
g4-867:~/Desktop/QS08 k5gj$ /usr/local/bin/gcc34 -O3 -mtune=7450 *.c -o qs087
g4-867:~/Desktop/QS08 k5gj$
g4-867:~/Desktop/QS08 k5gj$
g4-867:~/Desktop/QS08 k5gj$
g4-867:~/Desktop/QS08 k5gj$ ./qs087 < c96.txt

Msieve v. 0.87
random seeds: 00000246 41bb59b0
input to factor: factoring 318810931824350089603496873449091927715882749575887966364423318942890168072543614241539805612253
Sat Dec 11 14:33:52 2004
using multiplier of 1
Sat Dec 11 14:33:59 2004
using sieve block of 32768
using a sieve bound of 1753069 (65882 primes)
using large prime bound of 308540144
using double large prime bound of 1908802421804784

sieving in progress (press Ctrl-C to pause)
^Cund 2341 relations (2094 full + 247 partial), need 66010
received signal 2; shutting down
found 2353 relations (2101 full + 252 partial), need 66010
Sat Dec 11 18:07:05 2004
g4-867:~/Desktop/QS08 k5gj$

concatenate msieve.dat files

g4-867:~/Desktop/QS08 k5gj$
g4-867:~/Desktop/QS08 k5gj$ ./qs087 < c96.txt

Msieve v. 0.87
random seeds: 00000290 41bb8bed
input to factor: factoring 318810931824350089603496873449091927715882749575887966364423318942890168072543614241539805612253
Sat Dec 11 18:08:13 2004
using multiplier of 1
Sat Dec 11 18:08:20 2004
using sieve block of 32768
using a sieve bound of 1753069 (65882 primes)
using large prime bound of 308540144

using double large prime bound of 1908802421804784
restarting with 5877 full and 402999 partial relations

sieving in progress (press Ctrl-C to pause)
found 8899 relations (5963 full + 2936 partial), need 66010
^C
found 13314 relations (7690 full + 5624 partial), need 66010
received signal 2; shutting down
found 13332 relations (7695 full + 5637 partial), need 66010
Sat Dec 11 20:55:35 2004
k5gj-s-Computer:~/Desktop/QS08 k5gj$




ASUS K8V-SE motherboard (AMD64-3400+)
K8-2200, 64K L1, 1M L2, CPU BUS 200 MHz, 512M DDR400 PC3200

root@k8-2200 QS08]# uname -a
Linux k8-2200.k5gj 2.6.9-1.681_FC3 #1 Thu Nov 18 15:13:22 EST 2004 x86_64 x86_64 x86_64 GNU/Linux
[root@k8-2200 QS08]#
[root@k8-2200 QS08]#
[root@k8-2200 QS08]# gcc -v
Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,objc,java,f77 --enable-java-awt=gtk --host=x86_64-redhat-linux
Thread model: posix
gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)
[root@k8-2200 QS08]#
[root@k8-2200 QS08]#
[root@k8-2200 QS08]# gcc -O3 -march=k8 -m64 *.c -o qs087 -lm
[root@k8-2200 QS08]#
[root@k8-2200 QS08]#
[root@k8-2200 QS08]#
[root@k8-2200 QS08]# ./qs087 < c96.txt

Msieve v. 0.87
random seeds: 00000d6a 41bbb3ad
input to factor: factoring 318810931824350089603496873449091927715882749575887966364423318942890168072543614241539805612253
Sat Dec 11 20:57:49 2004
using multiplier of 1
Sat Dec 11 20:57:51 2004
using sieve block of 65536
using a sieve bound of 1753069 (65882 primes)
using large prime bound of 308540144
using double large prime bound of 1908802421804784
restarting with 7695 full and 525317 partial relations

sieving in progress (press Ctrl-C to pause)
found 13354 relations (7702 full + 5652 partial), need 66010
found 13373 relations (7708 full + 5665 partial), need 66010
|
|
found 66068 relations (15735 full + 50333 partial), need 66010
found 66068 relations (15735 full + 50333 partial), need 66010
begin with 1076476 relations
reduce to 158295 relations in 12 passes
attempting to read 15735 full and 158295 partial relations
recovered 15735 full and 158295 partial relations
recovered 170771 polynomials
attempting to build 50333 cycles
found 50333 cycles in 6 passes
distribution of cycle lengths:
length 2 : 11635
length 3 : 11309
length 4 : 8941
length 5 : 6815
length 6 : 4494
length 7 : 3015
length 8 : 1769
length 9+: 2355
largest cycle: 20 relations
Sun Dec 12 00:34:45 2004
65882 x 65946 system, weight 4453463 (avg 67.53/col)
reduce to 64976 x 65040 in 3 passes
lanczos halted after 1029 iterations
recovered 63 nontrivial dependencies
Sun Dec 12 00:35:34 2004
probable prime factor: 205177732079223834923136958397065641086927780129
probable prime factor: 1553828130341405013222404004541918319450603908157
Sun Dec 12 00:35:57 2004
[root@k8-2200 QS08]#

/******************************************************************************/

n = 205177732079223834923136958397065641086927780129 * 1553828130341405013222404004541918319450603908157
Out[2]:= 318810931824350089603496873449091927715882749575887966364423318942890168072543614241539805612253
Out[3]:= False
Out[4]:= 96

/******************************************************************************/
/******************************************************************************/
/******************************************************************************/[/code]

JHansen 2004-12-12 12:53

Suggestion regarding posting log files
 
Hi all!

I would suggest that all who publishes a log file from a factorization puts the log inside a CODE environment, like I did in post #20. This is done by marking all the text from the factorization and pressing the button with a # on it.

That way a post won't be several screens long to read.


-----
Cheers,
Jes

smh 2004-12-12 14:06

[QUOTE=JHansen]Hi all!

I would suggest that all who publishes a log file from a factorization puts the log inside a CODE environment, like I did in post #20. This is done by marking all the text from the factorization and pressing the button with a # on it.

That way a post won't be several screens long to read.
[/QUOTE]

Agreed, so i took the liberty to do this for the post on the last page of this thread.

Mystwalker 2004-12-12 15:48

William, Alex and Paul:

You're absolutely right, I have to excuse for any confusion I might have been responsible for. I absent-mindedly thought that P-1 is slower than ECM and concluded the rest of my posting by logic (which was based on wrong assumptions).
Thanks for pointing this out!

jasonp 2004-12-12 18:23

Continued development?
 
So it looks like the basics are all there for Msieve, and AFAICT it's
loads faster than other QS programs. Where do I go from here?

I've gotten a few suggestions for usability improvements, most of
which are easy and can be folded into the next release. If I think
of another idea to speed up sieving or somebody trips over a bug,
it'll definitely cause a new version. What I'm not sure of is whether
it's worth everyone's time to continue hardcore development of the
core code.

According to Paul's 3-large-prime QS paper, the speedup to expect
from going to 3 large primes is a factor of ~1.7 when the input is
large enough. Problem is, 'large enough' may well be past the point
where Msieve will always be slower than using GGNFS. I estimate
that point to be ~103 digits right now, since for numbers that size
Msieve takes ~3 days and GGNFS takes maybe 2-3 days. Adding
3LP support can maybe move the crossover point to 105-106 digits.
And GGNFS is under constant development; it already eats numbers
this small for breakfast.

Is it worth the effort? There are no geek points available (though it
flatters me) for spending weeks running my code when you could
spend days running somebody else's. And before you rush ahead and
say 'go for it!' because it costs you nothing to do so, realize that when
I'm in the middle of this stuff I get *very* obsessed about it. Everything
that's not my day job gets put on hold. Not that I mind (or else I wouldn't
do it), but understand that changing algorithmic stuff in there is hard.

What do you think?
jasonp


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

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