mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > YAFU

Reply
 
Thread Tools
Old 2021-04-08, 20:00   #1
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

2·32·191 Posts
Default 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!
bsquared is offline   Reply With Quote
Old 2021-04-08, 20:10   #2
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

2×32×191 Posts
Default

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
bsquared is offline   Reply With Quote
Old 2021-04-08, 20:55   #3
EdH
 
EdH's Avatar
 
"Ed Hall"
Dec 2009
Adirondack Mtns

3,719 Posts
Default

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).
EdH is offline   Reply With Quote
Old 2021-04-08, 20:57   #4
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

1101011011102 Posts
Default

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.
bsquared is offline   Reply With Quote
Old 2021-04-09, 01:58   #5
charybdis
 
charybdis's Avatar
 
Apr 2020

23·3·11 Posts
Default

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
charybdis is offline   Reply With Quote
Old 2021-04-09, 08:18   #6
Kvasir
 
Dec 2020

22×5 Posts
Default

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.
Kvasir is offline   Reply With Quote
Old 2021-04-09, 08:43   #7
mersenneNoob
 
"Nigel"
Apr 2021

2·7 Posts
Default

553351296091338013184869649447 is a factor of the 60 digit number
mersenneNoob is offline   Reply With Quote
Old 2021-04-09, 12:41   #8
charybdis
 
charybdis's Avatar
 
Apr 2020

10816 Posts
Default

Quote:
Originally Posted by Kvasir View Post
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 View Post
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.
charybdis is offline   Reply With Quote
Old 2021-04-09, 12:55   #9
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

2·32·191 Posts
Default

Quote:
Originally Posted by charybdis View Post
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.
bsquared is offline   Reply With Quote
Old 2021-04-09, 19:17   #10
charybdis
 
charybdis's Avatar
 
Apr 2020

23×3×11 Posts
Default

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.
charybdis is offline   Reply With Quote
Old 2021-04-10, 04:47   #11
bur
 
Aug 2020

2×5×17 Posts
Default

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
bur is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
yafu ignoring yafu.ini chris2be8 YAFU 6 2019-10-17 16:22
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.32 bsquared YAFU 28 2012-07-20 16:17

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

Sun May 16 00:56:54 UTC 2021 up 37 days, 19:37, 0 users, load averages: 1.86, 1.71, 1.69

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.