![]() |
[QUOTE=lorgix;244714]Let's try it out!
sigma = 1940137128 completes the factorization of 198^198*4+1.[/QUOTE] That looks more realistic:[CODE][ <2, 4>, <3, 1>, <5, 1>, <3371, 1>, <5347, 1>, <30389, 1>, <87887, 1>, <19452079, 1> ][/CODE] B1=90K, B2=20M would be sufficient. |
I'm happy to report that Brian Gladman has found and fixed a bug in msieve which allows Win32 versions of YAFU to complete NFS factorizations. This fixes the problem reported by Andi_HB [URL="http://www.mersenneforum.org/showpost.php?p=244446&postcount=504"]here[/URL].
I've updated the yafu-1.22 download on [URL="https://sourceforge.net/projects/yafu/"]sourceforge [/URL]and my [URL="http://sites.google.com/site/bbuhrow/"]website [/URL]with these fixed binaries. |
Ben,
One of my Ubuntu machines gives the following: [code] ==== sieving in progress (1 thread): 5408 relations needed ==== ==== Press ctrl-c to abort and save state ==== Illegal instruction WARNING: couldn't find factor in factor.log [/code]My yafu-64k-linux32 header shows: [code] 01/06/11 11:28:07 v1.21 @ math06, System/Build Info: detected AMD Athlon(tm) Processor detected L1 = 65536 bytes, L2 = 65536 bytes, CL = 0 bytes measured cpu frequency ~= 2068.602740 [/code]My CPU info shows: [code] processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 8 model name : AMD Athlon(tm) Processor stepping : 1 cpu MHz : 1795.353 cache size : 64 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow up bogomips : 3590.70 clflush size : 32 cache_alignment : 32 address sizes : 34 bits physical, 32 bits virtual power management: ts [/code]Is the omission of SSE2 my trouble? If so, is there a workaround? I'm running this under Aliqueit, which uses Msieve right after the YAFU abort, so it isn't causing a real loss of time, other than if YAFU would have found the factors more quickly. If it's not something simple to address, don't worry about it. Just thought I'd ask... Thanks for all the work you put into a great program. Ed |
[QUOTE=EdH;244820]Is the omission of SSE2 my trouble? If so, is there a workaround? I'm running this under Aliqueit, which uses Msieve right after the YAFU abort, so it isn't causing a real loss of time, other than if YAFU would have found the factors more quickly. If it's not something simple to address, don't worry about it. Just thought I'd ask...
Thanks for all the work you put into a great program. Ed[/QUOTE] Hi Ed, Yes, I just checked and saw that I've hardcoded SSE2 instructions into recent builds - I think because I was having trouble detecting nehalem cpus. I'm fairly sure that's where the illegal instruction message came from. I assume the "can't find factor" business is an aliqueit message... There isn't a workaround other than rebuilding a new executable with SSE2 undefined. I'd be happy to do this for you if you want - just send me an email - but I don't really want to update the main SF download because I think more people have SSE2 instruction support than not who use yafu. |
If I specify a B2>4e9 YAFU still states that primes above 4e9 aren't supported in ECM. And then reduces B2 to 4e9.
Also, when using factor() YAFU states B2=B1*100. B2 for pp1&pm1 is reported as gmp-ecm default. |
[QUOTE=lorgix;244842] If I specify a B2>4e9 YAFU still states that primes above 4e9 aren't supported in ECM. And then reduces B2 to 4e9.
[/QUOTE] Thanks, I forgot to remove that check - it is no longer necessary. Will do. [QUOTE=lorgix;244842] Also, when using factor() YAFU states B2=B1*100. B2 for pp1&pm1 is reported as gmp-ecm default. [/QUOTE] factor() always ignores specified values of B2, because a single specific value of B2 doesn't make sense to apply to curves run with potentially many different B1 bounds. I had intended the ability to specify B2 to be more useful when running the ecm() command directly. However when you both specify B2 and run factor(), the flag indicating that there is a user defined B2 causes factor() to revert to the old B2=100*B1 behavior. What may be needed here is to allow yafu to pass on more GMP-ECM's flags. Maybe you are looking for something like the -B2scale flag from GMP-ECM, to run curves with higher than normal B2 values? Ordinarily, you don't need to specify B2 at all. |
[QUOTE=bsquared;244847]Thanks, I forgot to remove that check - it is no longer necessary. Will do.
factor() always ignores specified values of B2, because a single specific value of B2 doesn't make sense to apply to curves run with potentially many different B1 bounds. I had intended the ability to specify B2 to be more useful when running the ecm() command directly. However when you both specify B2 and run factor(), the flag indicating that there is a user defined B2 causes factor() to revert to the old B2=100*B1 behavior. What may be needed here is to allow yafu to pass on more GMP-ECM's flags. Maybe you are looking for something like the -B2scale flag from GMP-ECM, to run curves with higher than normal B2 values?[/QUOTE] Yes, I didn't expect factor() to be affected by the values I set in yafu.ini. The last sentence of the second paragraph explains why factor() uses B2=B1*100. I'm assuming you intend to have factor() use GMP-ECM default B2 values regardless of whether user defined B2 values are set for the ecm() command. I'm not sure I understand the third paragraph... -- edit: What happens to B2 when a "non-standard" B1 is specified, say 7e6? |
[QUOTE=lorgix;244852]
Yes, I didn't expect factor() to be affected by the values I set in yafu.ini. [/QUOTE] I thought you _were_ trying to influence the behavior of factor() with B2... sorry for not understanding. That's why I wrote that third paragraph... I was digging for a reason why you wanted to specify a B2 while using factor(). [QUOTE=lorgix;244852]I'm assuming you intend to have factor() use GMP-ECM default B2 values regardless of whether user defined B2 values are set for the ecm() command. [/QUOTE] Yes. Looks like I need to fix that. [QUOTE=lorgix;244852] -- edit: What happens to B2 when a "non-standard" B1 is specified, say 7e6? [/QUOTE] GMP-ECM knows what to do with it. If you want to see what value it picks, you can run yafu with verbosity level 3 (i.e, -v -v -v). You'll get a bunch of other extraneous crap as well, but should see GMP-ECM messages scrolling by with the B2 value it is using. |
^Ok, all good.
Thanks! |
[QUOTE=bsquared;244836]Hi Ed,
Yes, I just checked and saw that I've hardcoded SSE2 instructions into recent builds - I think because I was having trouble detecting nehalem cpus. I'm fairly sure that's where the illegal instruction message came from. I assume the "can't find factor" business is an aliqueit message... There isn't a workaround other than rebuilding a new executable with SSE2 undefined. I'd be happy to do this for you if you want - just send me an email - but I don't really want to update the main SF download because I think more people have SSE2 instruction support than not who use yafu.[/QUOTE] Thanks, Ben, Yes, the "can't find factor" is an Aliqueit message. Don't worry about the rebuild. YAFU's working on the other machines. I'll just have Aliqueit use msieve for that one, which it was already dropping to, anyway. Actually, according to the log, the "Illegal instruction" came immediate, so no time was lost with YAFU. Thanks again for all the work. Ed |
prp44 = 23710816555364101973043402552130134552345931 (found in stg2 of curve 1201 (thread 0) with sigma = 81699089)
completes factorization of (66^66*28+1)/33507324910380028514032210891 66^66*28+1=p29.p44.p50 |
| All times are UTC. The time now is 23:03. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.