mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > YAFU

Reply
 
Thread Tools
Old 2012-04-23, 08:15   #45
Dubslow
Basketry That Evening!
 
Dubslow's Avatar
 
"Bunslow the Bold"
Jun 2011
40<A<43 -89<O<-88

160658 Posts
Default

Quote:
Originally Posted by schickel View Post
As a workaround on Windows, you could try making a batch file with the switches you desire and then put the batch file as the yafu command.

Example:
Code:
yafu_cmd = YAFUBAT
YAFUBAT.bat:
Code:
yafu_path\yafu -v %1
(Of course, I haven't looked at exactly how aliqueit.exe passes the arguments to the particular factoring program......but above I'm assuming that the argument is passed on the command line, therefore the batch file passes its first parameter to YAFU.)
Based on my own experiments, I'd guess it's just "$(yafu cmd) factor(num)", so that ought to work fine.
Dubslow is offline   Reply With Quote
Old 2012-04-23, 08:24   #46
10metreh
 
10metreh's Avatar
 
Nov 2008

91216 Posts
Default

Or add a line "v=1" to yafu.ini. That works for other switches too.
10metreh is offline   Reply With Quote
Old 2012-04-23, 08:54   #47
schickel
 
schickel's Avatar
 
"Frank <^>"
Dec 2004
CDP Janesville

212210 Posts
Default

Quote:
Originally Posted by 10metreh View Post
Or add a line "v=1" to yafu.ini. That works for other switches too.
I forgot about that method....
schickel is offline   Reply With Quote
Old 2012-06-03, 03:51   #48
Mathew
 
Mathew's Avatar
 
Nov 2009

35010 Posts
Default

Doing the following: (On Linux)
Code:
yafu "factor(@)" -batchfile numbers.txt -logfile factors.txt
Upon resuming this, if a number was already in the nfs stage.
yafu will do the ecm stages again and then resume the nfs portion.

Would it be possible for yafu to check if sieving has already begun, and continue from there?
Mathew is offline   Reply With Quote
Old 2012-06-03, 03:57   #49
Dubslow
Basketry That Evening!
 
Dubslow's Avatar
 
"Bunslow the Bold"
Jun 2011
40<A<43 -89<O<-88

722110 Posts
Default

Quote:
Originally Posted by Mathew View Post
Doing the following: (On Linux)
Code:
yafu "factor(@)" -batchfile numbers.txt -logfile factors.txt
Upon resuming this, if a number was already in the nfs stage.
yafu will do the ecm stages again and then resume the nfs portion.

Would it be possible for yafu to check if sieving has already begun, and continue from there?
Adding -R to factor() was on my list of four, now three things.
Dubslow is offline   Reply With Quote
Old 2012-06-03, 19:29   #50
Dubslow
Basketry That Evening!
 
Dubslow's Avatar
 
"Bunslow the Bold"
Jun 2011
40<A<43 -89<O<-88

3·29·83 Posts
Default

Quote:
Originally Posted by Dubslow View Post
Adding -R to factor() was on my list of four, now three things.
Here's another one: When I do "yafu nfs(num) -ns -v -R", it doesn't read any of the rels I've already collected. I have to remove the -ns to do that, even though I only want to do sieving. Even removing -ns, it didn't get the last special-q right for some reason.

Code:
syscmd: ./ggnfs/gnfs-lasieve4I15e -a nfs.job -f 16839991 -c 80000 -o rels0.dat
total yield: 234295, q=16919999 (0.11644 sec/rel) 
found 5586247 relations, need at least 44869961, continuing with sieving ...
nfs: commencing algebraic side lattice sieving over range: 16919991 - 16999991
syscmd: ./ggnfs/gnfs-lasieve4I15e -a nfs.job -f 16919991 -c 80000 -o rels0.dat
total yield: 237559, q=16999999 (0.11710 sec/rel) 
found 5823806 relations, need at least 44869961, continuing with sieving ...
nfs: commencing algebraic side lattice sieving over range: 16999991 - 17079991
syscmd: ./ggnfs/gnfs-lasieve4I15e -a nfs.job -f 16999991 -c 80000 -o rels0.dat
total yield: 235023, q=17079991 (0.11661 sec/rel) 
found 6058829 relations, need at least 44869961, continuing with sieving ...
nfs: commencing algebraic side lattice sieving over range: 17079991 - 17159991
syscmd: ./ggnfs/gnfs-lasieve4I15e -a nfs.job -f 17079991 -c 80000 -o rels0.dat
^C
Received signal 2... please wait


***factors found***


***co-factor***
C158 = 34473140218538108783457767847160803005570403677190199323501471286696391707357183201882067234295472747361321855598229568051445043790754713420994112701235355501
bill@Gravemind:~/yafu∰∂ yafu "nfs("$(cat num)")" -ns -v -R


>> nfs: checking for job file - input from file = 34473140218538108783457767847160803005570403677190199323501471286696391707357183201882067234295472747361321855598229568051445043790754713420994112701235355501
input to yafu = 34473140218538108783457767847160803005570403677190199323501471286696391707357183201882067234295472747361321855598229568051445043790754713420994112701235355501
input matches with multiple of 1
number in job file matches input
nfs: checking for data file
nfs: commencing NFS restart
nfs: previous data file found - skipping search for last special-q
nfs: commencing gnfs on c158: 34473140218538108783457767847160803005570403677190199323501471286696391707357183201882067234295472747361321855598229568051445043790754713420994112701235355501
nfs: continuing with sieving - could not determine last special q; using default startq
nfs: commencing algebraic side lattice sieving over range: 15000000 - 15080000
syscmd: ./ggnfs/gnfs-lasieve4I15e -a nfs.job -f 15000000 -c 80000 -o rels0.dat
^C
Received signal 2... please wait


***factors found***


***co-factor***
C158 = 34473140218538108783457767847160803005570403677190199323501471286696391707357183201882067234295472747361321855598229568051445043790754713420994112701235355501
bill@Gravemind:~/yafu∰∂ yafu "nfs("$(cat num)")" -v -R

>> nfs: checking for job file - input from file = 34473140218538108783457767847160803005570403677190199323501471286696391707357183201882067234295472747361321855598229568051445043790754713420994112701235355501
input to yafu = 34473140218538108783457767847160803005570403677190199323501471286696391707357183201882067234295472747361321855598229568051445043790754713420994112701235355501
input matches with multiple of 1
number in job file matches input
nfs: checking for data file
nfs: commencing NFS restart
nfs: previous data file found - commencing search for last special-q
line 0 = 65317652167,11757:13100167,55fd,5e319,ddce1,9a3:10901cbf,20cb727,b477,af12f,fd6df,244589,71941f,3f3d,e61a37

line 1 = -123540995087,13179:8b3661b,5ee27d7,235081,244813:2a07931,fd4783b,ab71,18050f,6abf07,d50535,1693,e61a37

line 2 = 22014271849,15437:19bd8bef,7957,e4943,32e979,923:15eaa3d5,10ced99,123cb,45e23,889667,e1b0dd,a97,32a7,e61a37

line 3 = 168247715561,16159:3552ed5,e161,16ac35,12ff209,196b871:f8f135,682ed55,e431,15265,1fae3,5c4f5,2d34f9,2f57,419,e61a37

nfs: parsing special-q
parsing rat side spq from 65317652167,11757:13100167,55fd,5e319,ddce1,9a3:10901cbf,20cb727,b477,af12f,fd6df,244589,71941f,3f3d,e61a37

found 9a3
parsing alg side spq from 65317652167,11757:13100167,55fd,5e319,ddce1,9a3:10901cbf,20cb727,b477,af12f,fd6df,244589,71941f,3f3d,e61a37

found e61a37
parsing rat side spq from -123540995087,13179:8b3661b,5ee27d7,235081,244813:2a07931,fd4783b,ab71,18050f,6abf07,d50535,1693,e61a37

found 244813
parsing alg side spq from -123540995087,13179:8b3661b,5ee27d7,235081,244813:2a07931,fd4783b,ab71,18050f,6abf07,d50535,1693,e61a37

found e61a37
parsing rat side spq from 22014271849,15437:19bd8bef,7957,e4943,32e979,923:15eaa3d5,10ced99,123cb,45e23,889667,e1b0dd,a97,32a7,e61a37

found 923
parsing alg side spq from 22014271849,15437:19bd8bef,7957,e4943,32e979,923:15eaa3d5,10ced99,123cb,45e23,889667,e1b0dd,a97,32a7,e61a37

found e61a37
nfs: commencing gnfs on c158: 34473140218538108783457767847160803005570403677190199323501471286696391707357183201882067234295472747361321855598229568051445043790754713420994112701235355501
nfs: found 6378099 relations, continuing job at specialq = 15079991
found 6378099 relations, need at least 44869961, continuing with sieving ...
nfs: commencing algebraic side lattice sieving over range: 15079991 - 15159991
syscmd: ./ggnfs/gnfs-lasieve4I15e -a nfs.job -f 15079991 -c 80000 -o rels0.dat
                         /* Should be north of 17M ^ */
Dubslow is offline   Reply With Quote
Old 2012-06-04, 01:48   #51
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

374910 Posts
Default

Quote:
Originally Posted by Mathew View Post
Doing the following: (On Linux)
Code:
yafu "factor(@)" -batchfile numbers.txt -logfile factors.txt
Upon resuming this, if a number was already in the nfs stage.
yafu will do the ecm stages again and then resume the nfs portion.

Would it be possible for yafu to check if sieving has already begun, and continue from there?
Possible, yes. I'll have to look into how difficult it will be. Detecting an in-progress nfs job is quite a bit more involved because of the multiple stages and files to check. I'll have to see if the routine I wrote to do all that parsing/checking can be ported over to factor().
bsquared is offline   Reply With Quote
Old 2012-06-04, 02:03   #52
bsquared
 
bsquared's Avatar
 
"Ben"
Feb 2007

374910 Posts
Default

Quote:
Originally Posted by Dubslow View Post
Here's another one: When I do "yafu nfs(num) -ns -v -R", it doesn't read any of the rels I've already collected. I have to remove the -ns to do that, even though I only want to do sieving. Even removing -ns, it didn't get the last special-q right for some reason.
There are several things going on here. First, there is a bug if -ns is used without arguments. In that case it is supposed to check the .dat file for the last special-q, but it didn't. So instead it uses some default value to start at.

Second, the resume feature is not foolproof - it will not parse every single line of the .dat file to try to find the biggest special-q yet seen. (I wanted to keep resume setup time reasonable.) Instead, it will scan the last couple of relations and figure out the last special-q from those. Because of the previously mentioned bug, you did a tiny amount of sieving at a smaller special-q, and those relations are what yafu used to determine the last SQ (they were the last ones in the file at that point).

Possible workaround for now: do a tiny amount of manual sieving at the larger SQ that you previously stopped at, so that those relations are last in the file. Then resume with -R. I wouldn't recommend using -ns without arguments until I can get that fixed. At least, if you plan on stopping/resuming. If you are going to run all the way through the sieving then it should work fine with just -ns.

hope that helps - and thanks for the feedback.
bsquared is offline   Reply With Quote
Old 2012-06-04, 02:12   #53
Dubslow
Basketry That Evening!
 
Dubslow's Avatar
 
"Bunslow the Bold"
Jun 2011
40<A<43 -89<O<-88

722110 Posts
Default

Quote:
Originally Posted by bsquared View Post
There are several things going on here. First, there is a bug if -ns is used without arguments. In that case it is supposed to check the .dat file for the last special-q, but it didn't. So instead it uses some default value to start at.

Second, the resume feature is not foolproof - it will not parse every single line of the .dat file to try to find the biggest special-q yet seen. (I wanted to keep resume setup time reasonable.) Instead, it will scan the last couple of relations and figure out the last special-q from those. Because of the previously mentioned bug, you did a tiny amount of sieving at a smaller special-q, and those relations are what yafu used to determine the last SQ (they were the last ones in the file at that point).

Possible workaround for now: do a tiny amount of manual sieving at the larger SQ that you previously stopped at, so that those relations are last in the file. Then resume with -R. I wouldn't recommend using -ns without arguments until I can get that fixed. At least, if you plan on stopping/resuming. If you are going to run all the way through the sieving then it should work fine with just -ns.

hope that helps - and thanks for the feedback.
Sure, thanks.

Perhaps check a the last few hundred rels, or like check the 100th-to-last, 50th-to-last, 10th-to-last, etc?
Dubslow is offline   Reply With Quote
Old 2012-06-05, 02:28   #54
swellman
 
swellman's Avatar
 
Jun 2012

2·19·103 Posts
Default

First post on the forum. Just want to say how great YAFU is. I've been using it since last fall after I started contributing to the xyyx project.

YAFU is n00b friendly and it gets better with each release.

I want to second a motion raised elsewhere in this sub forum - please fix the estimated number of relations required before filtering is attempted. It's off quite a bit. Most of the factorizations I'm working are LP of 29 bits so I need ~43M relations, but YAFU starts to attempt filtering at 26M relations. Wastes a good chunk of time repeatedly filtering so prematurely. But all else works great for me.

Keep up the great work!
swellman is online now   Reply With Quote
Old 2012-06-06, 01:56   #55
LaurV
Romulan Interpreter
 
LaurV's Avatar
 
"name field"
Jun 2011
Thailand

5·112·17 Posts
Default

Have you tried "-ns start stop" ? You can force yafu to sieve a whole range of q's before filtering. (see doc file).
(edit: this does not mean I'm not seconding/thirding you with the motion. Some "light"/"deep" plan for sieving at least (same as for ecm) should be welcomed anytime!)

Last fiddled with by LaurV on 2012-06-06 at 02:00
LaurV is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
ARM ASM request ET_ Programming 0 2018-11-01 14:57
Bug/request Dubslow YAFU 4 2012-03-31 03:07
Odd request? Xyzzy Lounge 23 2011-03-08 17:50
Prime95 featured in Maximum PC! ixfd64 Software 10 2010-05-31 15:21
GMP-ECM Request rogue GMP-ECM 4 2009-11-23 15:07

All times are UTC. The time now is 22:05.


Fri Mar 31 22:05:45 UTC 2023 up 225 days, 19:34, 0 users, load averages: 0.98, 0.88, 0.86

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, 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.

≠ ± ∓ ÷ × · − √ ‰ ⊗ ⊕ ⊖ ⊘ ⊙ ≤ ≥ ≦ ≧ ≨ ≩ ≺ ≻ ≼ ≽ ⊏ ⊐ ⊑ ⊒ ² ³ °
∠ ∟ ° ≅ ~ ‖ ⟂ ⫛
≡ ≜ ≈ ∝ ∞ ≪ ≫ ⌊⌋ ⌈⌉ ∘ ∏ ∐ ∑ ∧ ∨ ∩ ∪ ⨀ ⊕ ⊗ 𝖕 𝖖 𝖗 ⊲ ⊳
∅ ∖ ∁ ↦ ↣ ∩ ∪ ⊆ ⊂ ⊄ ⊊ ⊇ ⊃ ⊅ ⊋ ⊖ ∈ ∉ ∋ ∌ ℕ ℤ ℚ ℝ ℂ ℵ ℶ ℷ ℸ 𝓟
¬ ∨ ∧ ⊕ → ← ⇒ ⇐ ⇔ ∀ ∃ ∄ ∴ ∵ ⊤ ⊥ ⊢ ⊨ ⫤ ⊣ … ⋯ ⋮ ⋰ ⋱
∫ ∬ ∭ ∮ ∯ ∰ ∇ ∆ δ ∂ ℱ ℒ ℓ
𝛢𝛼 𝛣𝛽 𝛤𝛾 𝛥𝛿 𝛦𝜀𝜖 𝛧𝜁 𝛨𝜂 𝛩𝜃𝜗 𝛪𝜄 𝛫𝜅 𝛬𝜆 𝛭𝜇 𝛮𝜈 𝛯𝜉 𝛰𝜊 𝛱𝜋 𝛲𝜌 𝛴𝜎𝜍 𝛵𝜏 𝛶𝜐 𝛷𝜙𝜑 𝛸𝜒 𝛹𝜓 𝛺𝜔