mersenneforum.org > YAFU YAFU 2.0
 Register FAQ Search Today's Posts Mark Forums Read

 2021-04-08, 20:00 #1 bsquared     "Ben" Feb 2007 E0216 Posts YAFU 2.0 It has been so long since a new windows executable and trunk code update have been released that I thought I might as well bump the version number to 2. Also significant: the official home of yafu is no longer on sourceforge. I decided to move all new development here: https://github.com/bbuhrow/yafu One of the reasons why there hasn't been a new windows exe or trunk code release in a while is that I have been continually tinkering with things, usually with new instruction set extensions or wild ideas. This tinkering invariably seems to break stuff, and I didn't want that kind of churn in the main download. I have been putting in a ton of work lately to try to get things back to stability and at the same time capture much of the new development. If you have read this far, the takeaway should be: stuff is probably still broken here and there. Please let me know if you find something wrong - yafu is pretty much in perpetual beta status. Here are a few of the major updates: * years worth of bugfixes and updates previously found in /branches/yafu-wip on sourceforge * separated out yafu's sieve of Eratosthenes to a new project: https://github.com/bbuhrow/ysieve. This will have to be built prior to yafu (similar to other dependencies like gmp) * separated out a lot of tool-like things that I find myself re-using on other projects: https://github.com/bbuhrow/ytools. This will have to be built prior to yafu (similar to other dependencies like gmp) * A lot of performance improvement from new AVX512 instruction set extensions, including AVX-ECM * yafu.ini now also documents the options available * newer builds of msieve, gmp, and gmp-ecm included in the windows exe Happy factoring!
 2021-04-08, 20:10 #2 bsquared     "Ben" Feb 2007 2·11·163 Posts Note, AVX-ECM is not a dependency of yafu. It is a standalone project here with its own thread here; a copy of the source is also in yafu. My github page also has a few other minor repositories, if anyone is interested. These are: * A C-language arbitrary precision integer calculator based on yafu's calculator: https://github.com/bbuhrow/ycalc * A C-language input parser based on yafu's parser: https://github.com/bbuhrow/cmdParser * yafu's tinyecm code: https://github.com/bbuhrow/tiny-ecm
 2021-04-08, 20:55 #3 EdH     "Ed Hall" Dec 2009 Adirondack Mtns 419410 Posts This all sounds great, but I'm wondering if it means I'll need to change all my "How I..." threads that reference YAFU ASAP, or if the sourceforge set will still be available for a while (and I can procrastinate).
 2021-04-08, 20:57 #4 bsquared     "Ben" Feb 2007 358610 Posts The stuff on sourceforge is not going anywhere, so no need to do anything quickly. Actually probably best not to do anything until all of the kinks have been worked out of this new thing.
 2021-04-09, 01:58 #5 charybdis     Apr 2020 11218 Posts I'm getting a segfault when attempting tune(), on both windows and linux: Code: =============================================================== ======= Welcome to YAFU (Yet Another Factoring Utility) ======= ======= [email address redacted] ======= ======= Type help at any time, or quit to quit ======= =============================================================== >> Setting THREADS = 1 for tuning checking for NFS sievers... done. starting SIQS on c60: 349594255864176572614071853194924838158088864370890996447417 Segmentation fault (core dumped) siqs() runs fine on this number. Last fiddled with by charybdis on 2021-04-09 at 02:00
 2021-04-09, 08:18 #6 Kvasir   Dec 2020 2·23 Posts tune() doesn't seem to do anything (at least not updating yafu.ini) on Windows. And even if I have an old tune_info line in the .ini file, this is displayed on startup: fac: no tune info: using qs/gnfs crossover of 100 digits fac: no tune info: using qs/snfs crossover of 75 digits Besides, ecm seems to run single-threaded, even with threads=10 in yafu.ini. SIQS runs multi-threaded.
 2021-04-09, 08:43 #7 mersenneNoob   "Nigel" Apr 2021 22·5 Posts 553351296091338013184869649447 is a factor of the 60 digit number
2021-04-09, 12:41   #8
charybdis

Apr 2020

593 Posts

Quote:
 Originally Posted by Kvasir Besides, ecm seems to run single-threaded, even with threads=10 in yafu.ini. SIQS runs multi-threaded.
I don't think yafu's internal ecm can run multithreaded on windows? Try using an external ecm binary and changing "ext_ecm=1000000000" in yafu.ini to something smaller like 10000 to make sure that it actually gets used.

Quote:
 Originally Posted by mersenneNoob 553351296091338013184869649447 is a factor of the 60 digit number
True, but anyone who wanted to know the factors could fire up yafu and find them very quickly using siqs() or factor(). In fact you'll see I mentioned that siqs() worked successfully on this number, so I already have the factors in my factor.log; it took 0.4 seconds to find them.

And that assumes we actually care what the factors are. That 60 digit number is just one of the numbers used as a test by yafu's tune() function, which determines the optimal crossover between SIQS and GNFS on a given system. It was probably generated randomly and is of no independent interest to anyone.

2021-04-09, 12:55   #9
bsquared

"Ben"
Feb 2007

2×11×163 Posts

Quote:
 Originally Posted by charybdis I don't think yafu's internal ecm can run multithreaded on windows? Try using an external ecm binary and changing "ext_ecm=1000000000" in yafu.ini to something smaller like 10000 to make sure that it actually gets used.
Perfect, yes.

I set ext-ecm large so that the internal avx-ecm can be used to high bounds, which is both multithreaded and vectorized. It must have accidentally got committed to git. If folks have AVX512F and therefore access to all three ecm versions, they will have to think about how to configure things with ext_ecm, prefer_gmpecm, and prefer_gmpecm_stg2.

The bug in tune was fixed last night; will hopefully get a new windows exe committed today.

 2021-04-09, 19:17 #10 charybdis     Apr 2020 25116 Posts tune() doesn't segfault anymore, but I'm still seeing a couple of issues. First it incorrectly detects a 64-bit linux system as 32-bit: Code: tune_info=Intel(R) Core(TM) i5-8500 CPU @ 3.00GHz,LINUX32,9.61126e-06,0.201795,0.276128,0.0996136,100.465,42 And then when I use factor(), I get Code: fac: check tune params contained invalid parameter(s), ignoring tune info.
 2021-04-10, 04:47 #11 bur     Aug 2020 79*6581e-4;3*2539e-3 3×163 Posts When running yafu tune(), this is all that happens: Code: >yafu-x64.exe tune() checking for NFS sievers... done. starting SIQS on c60: 349594255864176572614071853194924838158088864370890996447417 Takes just a few seconds, no tuneinfo was added to the ini. session.log: Code: 04/10/21 06:55:39, ===================================== 04/10/21 06:55:39, System/Build Info: 04/10/21 06:55:39, detected AMD Ryzen 5 2500U with Radeon Vega Mobile Gfx detected L1 = 32768 bytes, L2 = 4194304 bytes, CL = 64 bytes 04/10/21 06:55:39, using 1 random witness for Rabin-Miller PRP checks 04/10/21 06:55:39, Cached 664579 primes: max prime is 9999991 04/10/21 06:55:39, Random seed: 10929573232478676992 factor.log: Code: 04/10/21 06:55:40, starting SIQS on c60: 349594255864176572614071853194924838158088864370890996447417 04/10/21 06:55:40, random seed: 8271006283189086208 And a second issue, specifying -noecm seems to be ignored. I used it both in the ini and as an argument but it still runs ecm. This number if it*s important: 10450974137988693609715901393399485545016883310684938211501868888239765039524963017798457141299451333307339683 Last fiddled with by bur on 2021-04-10 at 05:02

 Similar Threads Thread Thread Starter Forum Replies Last Post chris2be8 YAFU 7 2022-01-20 14:59 EdH YAFU 8 2018-03-14 17:22 bsquared YAFU 119 2015-11-05 16:24 storflyt32 YAFU 2 2015-06-29 05:19 bsquared YAFU 28 2012-07-20 16:17

All times are UTC. The time now is 11:00.

Mon Jan 24 11:00:23 UTC 2022 up 185 days, 5:29, 0 users, load averages: 0.95, 1.27, 1.45