mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > YAFU

Reply
 
Thread Tools
Old 2010-03-13, 15:47   #353
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

64418 Posts
Default

There should be a fix for this in 1.17e - can you try that version?

[detailed_section]
I am using the strtok function to parse out tokens after rearranging them into postfix notation. The delimiter was a ' ' (space), but wasn't null terminated. Making the delimiter a null terminated space fixed this problem in at least one other test case, so hopefully the fix works for you as well.
[/detailed_section]
bsquared is offline   Reply With Quote
Old 2010-03-13, 16:31   #354
rekcahx
 
Oct 2009
Oulu, Finland

2·3·5 Posts
Default

Yeah, this seems to be fixed in 1.17. Thanks.

Edit:
Btw, precompiled 64k-linux64 benchmarks (factored number was 19^100+2 and processor is Phenom 9950):

SIQS elapsed time = 1311.0710 seconds.
Total factoring time = 1806.2232 seconds

Last fiddled with by rekcahx on 2010-03-13 at 17:08 Reason: Added benchmark, too
rekcahx is offline   Reply With Quote
Old 2010-03-15, 13:41   #355
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

3,361 Posts
Default

Thanks rekcahx, and everyone else that supplied benchmarks. It seems the adaptive cutoff code is working good; on rare occasions tests ran slightly slower (by 1 or 2%), but much more often it gives an improvement (over 10% in some cases).

1.17 will be out soon.
bsquared is offline   Reply With Quote
Old 2010-03-15, 13:45   #356
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

3,361 Posts
Default version 1.17 available

... in the usual place

The adaptive cutoff output (optfile.csv) is available as a compile time option. If anyone sees any funny behavior, let me know. Otherwise, happy factoring!

- ben.
bsquared is offline   Reply With Quote
Old 2010-03-20, 15:22   #357
VolMike
 
VolMike's Avatar
 
Jun 2007
Moscow,Russia

7·19 Posts
Default

Quote:
Originally Posted by bsquared View Post
... in the usual place

The adaptive cutoff output (optfile.csv) is available as a compile time option. If anyone sees any funny behavior, let me know. Otherwise, happy factoring!

- ben.
There is an exception occurs while typing some unexpected input data i.e.
Code:
sieve(1234)
at win32 vc.9 build yafu.

Some of other incorrectness evaluated correctly:
Code:
unrecognized token:...

Last fiddled with by VolMike on 2010-03-20 at 15:25
VolMike is offline   Reply With Quote
Old 2010-03-22, 17:25   #358
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

3,361 Posts
Default

Thanks VolMike, I've fixed that in my development source. The fix will appear in the next release.

I've also updated the webpage with a 1.17 package that includes 64 bit windows binaries. If you need pre-compiled 64 bit windows binaries then re-download the 1.17 zip file. Thanks to Jeff Gilchrist for providing them.

As a sneak peak: Version 1.18 changes the implementation of threading in SIQS to use a threadpool environment instead of spawn and join. This appears to be much more efficient on Nehalem architectures. I noticed in benchmarks of a nehalem based xeon system that smaller inputs were unexpectedly very slow. I traced this back to the introduction of threading in YAFU. The spawn and join threading I am using in 1.17 (and below) must not play nicely with Nehalems somehow; the threadpool fixes this. 1.18 should be released soon.

- ben.
bsquared is offline   Reply With Quote
Old 2010-03-26, 20:22   #359
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

3,361 Posts
Default version 1.18 available

... in the usual place.


New in version 1.18
+ more efficient threading in SIQS using a threadpool. this also fixes some slowdown issues I was seeing on Intel Nehalem chips. Thanks again to jasonp and msieve for providing an example threadpool implementation.
+ fixed bug reported by VolMike where an incorrect number of arguments to a function caused a crash.
+ much more advanced sieve of Eratosthenes. Faster, threaded, and capable of finding/counting primes in arbitrary intervals up to around 1e14.

I took a diversion in the sieve of Eratosthenes implementation for this latest version. I have measured it to be the fastest such available*, beating out ecprime and primegen.

- ben.

*Caveat: only on modern 64 bit processors, and only for large intervals (greater than a few billion or so).


bsquared is offline   Reply With Quote
Old 2010-03-26, 20:59   #360
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

2×3×19×31 Posts
Default

You're welcome. I now know that the thread pool code can be better; if you want a thread pool interface that uses less locking, I'm rather fond of Emmanuel Thome's code here in worker_threads.[ch], although you'd have to provide windows equivalents to some of the pthreads calls.
jasonp is offline   Reply With Quote
Old 2010-04-01, 02:55   #361
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

3,361 Posts
Default

Quote:
Originally Posted by jasonp View Post
You're welcome. I now know that the thread pool code can better; you want a thread pool interface that uses less locking, I'm rather fond Emmanuel Thome's code here worker_threads.[ch], although you'd have provide windows equivalents some the pthreads calls.
Thanks for the reference, I'll check that out.

Also, other news, I updated the 1.18 package the website include win64 binaries. I'm now able produce these myself, thanks the beta 2 release visual studio 2010. I think they are up a RC version now, and are past beta, but the beta 2 versions seems work ok.
bsquared is offline   Reply With Quote
Old 2010-04-19, 01:07   #362
Batalov
 
Batalov's Avatar
 
"Serge"
Mar 2008
Phi(4,2^7658614+1)/2

33·73 Posts
Default "rejecting duplicate poly_a"

I have multiple cases where yafu (both v.1.17 and 1.18) hangs on 42-digit composites. Is it an Easter egg? (you know that 42 is the Ultimate Answer to Everything)

Here are a few collected debug cases (all c42s!!):

917947111981150361998314676252219465199479
732566077883908909845195639793682175206731
446329425249256901981632476072664593912499

(This is on 64-bit Linux, the zipped binary yafu-64k-linux64, on a AMD k8/fam10.)
They start dumping lines:
...
rejecting duplicate poly_a, new target = 15576
rejecting duplicate poly_a, new target = 15577
rejecting duplicate poly_a, new target = 15578
rejecting duplicate poly_a, new target = 15579
rejecting duplicate poly_a, new target = 15580
...
___
P.S. I get them in the downdriver runs. Unfortunately, after unclogging a stuck process by msieve/qs, they all soon hit a driver.

Last fiddled with by Batalov on 2010-04-19 at 02:06
Batalov is offline   Reply With Quote
Old 2010-04-19, 04:54   #363
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

3,361 Posts
Default

Quote:
Originally Posted by Batalov View Post
I have multiple cases where yafu (both v.1.17 and 1.18) hangs on 42-digit composites. Is it an Easter egg? (you know that 42 is the Ultimate Answer to Everything)

Who knew that the ultimate question to the ultimate answer was "what size composite integer places excessive stress on yafu's hack of a random number generator?"? Only for 64 bit systems is this a problem, where I put some garbage together to try to extend rand() to produce a 64 bit random number rather than the 16 bit default.

I guess its good news that bugs only seem to be popping up in increasingly obscure places of the code.

Patched binaries for linux will be on my website soon (1.18.1). These also contain a minor fix in factor() which handles overflow conditions in the number of estimated ECM curves for large inputs (brought to my attention by several people, most recently by Dennis P.)
bsquared is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Running YAFU via Aliqueit doesn't find yafu.ini EdH YAFU 8 2018-03-14 17:22
YAFU-1.34 bsquared YAFU 119 2015-11-05 16:24
Yafu bug. storflyt32 YAFU 2 2015-06-29 05:19
yafu-1.33 bsquared YAFU 12 2012-11-08 04:12
yafu-1.32.1 bsquared YAFU 21 2012-09-04 19:44

All times are UTC. The time now is 20:48.

Thu Jan 21 20:48:12 UTC 2021 up 49 days, 16:59, 0 users, load averages: 2.24, 2.13, 2.12

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

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.