![]() |
Thanks, Ben.
|
Hi Ben, thanks for posting 1.30. Just found a slight issue. Just ran yafu tune() with the latest version, waited a while for it to complete all its tuning checks and then it spit out this:
[CODE]best linear fit is ln(y) = 0.10377 * x + -0.658619 R^2 = 0.968397 best exponential fit is y = 0.517566 * exp(0.10377 * x) QS/NFS crossover occurs at 100.3 digits could not open yafu.ini for reading![/CODE] So I hadn't pre-created a yafu.ini file and gave this error when it finished and did not write anything to yafu.ini. For the next release, could you please modify the code to create a yafu.ini file if one doesn't exist? Also, what kind of things does it write to the .ini, just the crossover point or are there other important params as well? Should I re-run this, or just stuck in my own entry of into the .ini: xover=100 Thanks, Jeff. |
[QUOTE=Jeff Gilchrist;285937]Hi Ben, thanks for posting 1.30. Just found a slight issue. Just ran yafu tune() with the latest version, waited a while for it to complete all its tuning checks and then it spit out this:
[CODE]best linear fit is ln(y) = 0.10377 * x + -0.658619 R^2 = 0.968397 best exponential fit is y = 0.517566 * exp(0.10377 * x) QS/NFS crossover occurs at 100.3 digits could not open yafu.ini for reading![/CODE] So I hadn't pre-created a yafu.ini file and gave this error when it finished and did not write anything to yafu.ini. For the next release, could you please modify the code to create a yafu.ini file if one doesn't exist? Also, what kind of things does it write to the .ini, just the crossover point or are there other important params as well? Should I re-run this, or just stuck in my own entry of into the .ini: xover=100 Thanks, Jeff.[/QUOTE] Sorry about that - and good idea, I will change it to create yafu.ini if necessary. You probably don't need to re-run unless you use the same yafu.ini file on many different computers. Simply putting in xover=100 should work fine. For me, yafu sits on a network drive and I can run it from a wide variety of computers, so my .ini file looks like this: [CODE]tune_info=Intel(R) Xeon(R) CPU X5460 @ 3.16GHz,LINUX64,2.18911e-05,0.202416,0.389149,0.100747,96.2505,3158.64 tune_info=Intel(R) Xeon(R) CPU X5570 @ 2.93GHz,LINUX64,3.49486e-05,0.196117,0.457315,0.0986543,97.2601,2926.14 tune_info=Intel(R) Xeon(R) CPU X5687 @ 3.60GHz,WIN64,2.17215e-005,0.198989,0.289067,0.104803,100.823,3559.71 tune_info=Intel(R) Xeon(R) CPU X5680 @ 3.33GHz,LINUX64,2.20817e-05,0.199481,0.407936,0.0991673,97.9339,3325.09 [/CODE] If there are multiple tune_info lines like this, yafu will use whichever one matches the cpu and OS detected at runtime. If this doesn't apply to you then don't worry about re-running tune. More detail, if you're still curious: The different entries in each tune_info line are: tune_info=The CPU Brand String,OS,QS multiplier,QS exponent,NFS multiplier,NFS exponent,computed xover,measured freq The brand string and the OS fields are used to find a matching tune_info line to the cpu and OS discoverd at runtime. The multipliers/exponents and measured frequency are what are actually used to estimate the expected runtime of QS and NFS in factor(), and to pick one vs. the other. The xover field in the tune_info line is just FYI - changing it will not change factor()'s behavior. The measured freq is recorded so that if the frequency ever changes at runtime (versus what was used during tune, for instance due to thermal throttling), the estimations for runtime will be appropriately scaled. The new -xover option of 1.30 [I]will[/I] change factor's behavior, and overrides the crossover calculation using tuning info. Hope that's not too much info, and addresses your questions. |
[QUOTE=bsquared;285945]Hope that's not too much info, and addresses your questions.[/QUOTE]
No, that is great to understand what all the info means. So if the cross-over point is the only thing that is really used by yafu for tune and it doesn't effect the parameters of other functions, then I will just stick with xover=100 for that install. Good to know I can have multiple tune lines in case I want to share the .ini file. Jeff. |
When I was in paid employment, part of my job involved testing programs I and my team had written to destruction. You will not be surprised to hear that I tried something similar with the new version of yafu. :devil:
[CODE] 01/12/12 22:35:53 v1.30 @ JANELAPTOP2, System/Build Info: Using GMP-ECM 6.4-rc1, Powered by MPIR 2.5.0 detected Intel(R) Core(TM) i5 CPU M 460 @ 2.53GHz detected L1 = 32768 bytes, L2 = 3145728 bytes, CL = 64 bytes measured cpu frequency ~= 2514.695820 =============================================================== ======= Welcome to YAFU (Yet Another Factoring Utility) ======= ======= bbuhrow@gmail.com ======= ======= Type help at any time, or quit to quit ======= =============================================================== cached 78498 primes. pmax = 999983 >> factor(2147483647^25) factoring 1987223135010585216526075465163733200936767083901296297344174198381949 69003256161733505513982053671587048837813206338182297211049040419860341979950096 24526264099150891209337143662715246937380774750138877962606251719147936083157503 1807 using pretesting plan: normal using tune info for qs/gnfs crossover div: primes less than 10000 pp1: starting B1 = 20K, B2 = gmp-ecm default on C234 pm1: starting B1 = 100K, B2 = gmp-ecm default on C215 ecm: 1/30 curves on C206 input, at B1 = 2K, B2 = gmp-ecm default ecm: 1/28 curves on C196 input, at B1 = 2K, B2 = gmp-ecm default ecm: 1/26 curves on C187 input, at B1 = 2K, B2 = gmp-ecm default ecm: 5/24 curves on C178 input, at B1 = 2K, B2 = gmp-ecm default ecm: 0/18 curves on C66 input, at B1 = 2K, B2 = gmp-ecm default ecm: 2/17 curves on C56 input, at B1 = 2K, B2 = gmp-ecm default ecm: 3/14 curves on C47 input, at B1 = 2K, B2 = gmp-ecm default ecm: 1/10 curves on C38 input, at B1 = 2K, B2 = gmp-ecm default Composite result found, starting re-factorization factoring 4611686014132420609 using pretesting plan: normal no tune info: using qs/gnfs crossover of 95 digits div: primes less than 10000 fmt: 1000000 iterations Total factoring time = 0.0040 seconds Composite result found, starting re-factorization factoring 9619630365287747226839050681966839463919428531629782475127367001763589 500187642982976435876178980851951693987841 using pretesting plan: normal no tune info: using qs/gnfs crossover of 95 digits div: primes less than 10000 rho: x^2 + 3, starting 1000 iterations on C112 rho: x^2 + 2, starting 1000 iterations on C112 rho: x^2 + 1, starting 1000 iterations on C112 pp1: starting B1 = 20K, B2 = gmp-ecm default on C112 pp1: starting B1 = 20K, B2 = gmp-ecm default on C112 pp1: starting B1 = 20K, B2 = gmp-ecm default on C112 pm1: starting B1 = 100K, B2 = gmp-ecm default on C94 ecm: 3/30 curves on C84 input, at B1 = 2K, B2 = gmp-ecm default ecm: 0/26 curves on C75 input, at B1 = 2K, B2 = gmp-ecm default ecm: 1/25 curves on C56 input, at B1 = 2K, B2 = gmp-ecm default ecm: 3/23 curves on C28 input, at B1 = 2K, B2 = gmp-ecm default ecm: 3/19 curves on C19 input, at B1 = 2K, B2 = gmp-ecm default Composite result found, starting re-factorization factoring 4611686014132420609 using pretesting plan: normal no tune info: using qs/gnfs crossover of 95 digits div: primes less than 10000 fmt: 1000000 iterations Total factoring time = 0.0030 seconds too many refactorization attempts, aborting Total factoring time = 0.5910 seconds too many refactorization attempts, aborting Total factoring time = 1.9451 seconds ***factors found*** C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 C10 = 2147483647 PRP28 = 9903520300447984150353281023 PRP28 = 9903520300447984150353281023 ans = 1 [/CODE] This result is strange![LIST][*]2147483647 is prime (it is 2^31-1), but is reported as C10[*]9903520300447984150353281023 is reported as PRP28, but it is 2147483647^3[/LIST] [CODE] >> factor(9903520300447984150353281023) factoring 9903520300447984150353281023 using pretesting plan: normal using tune info for qs/gnfs crossover div: primes less than 10000 pp1: starting B1 = 20K, B2 = gmp-ecm default on C28 too many refactorization attempts, aborting Total factoring time = 0.0300 seconds ***factors found*** C19 = 4611686014132420609 PRP10 = 2147483647 ans = 1 [/CODE] Should I be worried about this? |
[QUOTE=bsquared;285912][FONT=Courier New][FONT=Verdana][SIZE=2]-plan custom [/SIZE][/FONT][/FONT]
[/QUOTE] yuppyyyyy! Thanks! |
tried the same test as BudgieJane for different yafu versions. They all crash sooner or later or report strange results. It is not only affecting the last version. Most of them will go in an [B]endless loop[/B] saying "the input is a perfect power", eating up the harddisk space in minutes.
[CODE] Starting factorization of 19872231350105852165260754651637332009367670839012962973 44174198381949690032561617335055139820536715870488378132 06338182297211049040419860341979950096245262640991508912 09337143662715246937380774750138877962606251719147936083 1575031807 rho: x^2 + 3, starting 1000 iterations on C234 rho: x^2 + 2, starting 1000 iterations on C234 rho: x^2 + 1, starting 1000 iterations on C234 pp1: starting B1 = 20K, B2 = gmp-ecm default on C234 pp1: starting B1 = 20K, B2 = gmp-ecm default on C234 pp1: starting B1 = 20K, B2 = gmp-ecm default on C234 c19 = 4611686014132420609 pm1: starting B1 = 100K, B2 = gmp-ecm default on C215 prp10 = 2147483647 prp10 = 2147483647 (curve 1 stg2 B1=2000 sigma=1530679815 thread=0) Finished 1 curves using Lenstra ECM method on C206 input, B1 = 2K, B2 = gmp-ecm default prp10 = 2147483647 (curve 1 stg2 B1=11000 sigma=3467528356 thread=0) Finished 1 curves using Lenstra ECM method on C196 input, B1 = 11K, B2 = gmp-ecm default c19 = 4611686014132420609 (curve 4 stg2 B1=50000 sigma=3448495170 thread=0) Finished 8 curves using Lenstra ECM method on C187 input, B1 = 50K, B2 = gmp-ecm default pp1: starting B1 = 1250K, B2 = gmp-ecm default on C168 c19 = 4611686014132420609 pm1: starting B1 = 2500K, B2 = gmp-ecm default on C150 prp10 = 2147483647 prp10 = 2147483647 (curve 1 stg2 B1=250000 sigma=3952384254 thread=0) Finished 2 curves using Lenstra ECM method on C140 input, B1 = 250K, B2 = gmp-ecm default pp1: starting B1 = 5M, B2 = gmp-ecm default on C131 c19 = 4611686014132420609 pm1: starting B1 = 10M, B2 = gmp-ecm default on C112 prp10 = 2147483647 prp10 = 2147483647 (curve 8 stg2 B1=1000000 sigma=558140761 thread=1) Finished 16 curves using Lenstra ECM method on C103 input, B1 = 1M, B2 = gmp-ecm default prp10 = 2147483647 (curve 6 stg2 B1=10000000 sigma=2438080732 thread=1) Finished 12 curves using Lenstra ECM method on C94 input, B1 = 10M, B2 = gmp-ecm default input is a perfect power c84 = 971334442042048905792818449949263431919261344060050972981379158342510148733965959167 input is a perfect power c84 = 971334442042048905792818449949263431919261344060050972981379158342510148733965959167 input is a perfect power c84 = 971334442042048905792818449949263431919261344060050972981379158342510148733965959167 input is a perfect power c84 = 971334442042048905792818449949263431919261344060050972981379158342510148733965959167 input is a perfect power c84 = 971334442042048905792818449949263431919261344060050972981379158342510148733965959167 input is a perfect power c84 = 971334442042048905792818449949263431919261344060050972981379158342510148733965959167 input is a perfect power c84 = 971334442042048905792818449949263431919261344060050972981379158342510148733965959167 input is a perfect power .... billions of line like the last 2 will follow here :D [/CODE]In spite of the endless loop that come at C84, it seems like the former version identifies all the prp's and composites correctly. Maybe some "ispower" or "issquare" test, or trying to divide the cofactor by factors already found (as aliqueit is doing) would help? It is reasonable to think that once a factor is found, all its powers should try to be eliminated before further computing... |
[QUOTE=BudgieJane;286096] When I was in paid employment, part of my job involved testing programs I and my team had written to destruction. You will not be surprised to hear that I tried something similar with the new version of yafu. :devil:
[/QUOTE] You're right, that is pretty diabolical. [QUOTE=BudgieJane;286096] Should I be worried about this? [/QUOTE] Only if you commonly ask for factors of things of which you already know the factors :smile: [QUOTE=LaurV;286108] tried the same test as BudgieJane for different yafu versions. They all crash sooner or later or report strange results. It is not only affecting the last version. Most of them will go in an [B]endless loop[/B] saying "the input is a perfect power", eating up the harddisk space in minutes. [/QUOTE] Yes, you've both discovered that there is a limit to the number of refactorizations yafu will attempt before giving up (precisely to avoid infinite loops). On giving up, apparently it doesn't quite properly identify the factors it has already found. Something that's never been tested till now. [QUOTE=LaurV;286108] It is reasonable to think that once a factor is found, all its powers should try to be eliminated before further computing... [/QUOTE] Sure, it's reasonable to think that *now* :max: More seriously, I will indeed strive to fix this, but it probably won't be high on my priority list. Until then, stop trying to factor highly composite constructed numbers or diabolically assembled products of prime powers. Oh, and thank you for the testing! |
I sure wish you could make the resume feature a bit more foolproof (with me being the fool in this situation). More than once I've lost hours of work because I either resumed on a different form of the number in question or forgot to remove prior factors.
|
Should t15 and t20 really consist of 30 and 74 curves? Not 21 and 86?
How about adding a t10? 8 curves with B1=300. |
[QUOTE=Mr. Odd;287165]I sure wish you could make the resume feature a bit more foolproof (with me being the fool in this situation). More than once I've lost hours of work because I either resumed on a different form of the number in question or forgot to remove prior factors.[/QUOTE]
I can work on this. Progress has been slow (nil) lately - too much Real Work. [QUOTE=lorgix;287896]Should t15 and t20 really consist of 30 and 74 curves? Not 21 and 86? How about adding a t10? 8 curves with B1=300.[/QUOTE] [QUOTE][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff] void[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] init_factor_work(factor_work_t *fwork, fact_obj_t *fobj) { [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff][FONT=Consolas][SIZE=2][COLOR=#0000ff]enum[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2] factorization_state interp_state = state_idle; [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]// initialize max allowed work fields <snip>[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT] [B][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]fwork->ecm_max_15digit_curves = 30; [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]//2k [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/B][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2][B]fwork->ecm_max_20digit_curves = 74; [/B][/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][B]//11k[/B] [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]fwork->ecm_max_25digit_curves = 214; [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]//50k [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]fwork->ecm_max_30digit_curves = 430; [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]//250k [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]fwork->ecm_max_35digit_curves = 904; [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]//1M [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]fwork->ecm_max_40digit_curves = 2350; [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]//3M [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]fwork->ecm_max_45digit_curves = 4480; [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]//11M [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]fwork->ecm_max_50digit_curves = 7553; [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]//43M [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]fwork->ecm_max_55digit_curves = 17769; [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]//110M [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]fwork->ecm_max_60digit_curves = 42017; [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]//260M [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Consolas][SIZE=2][FONT=Consolas][SIZE=2]fwork->ecm_max_65digit_curves = 69408; [/SIZE][/FONT][/SIZE][/FONT][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000][FONT=Consolas][SIZE=2][COLOR=#008000]//850M [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/QUOTE] [QUOTE] factoring 265175473260522001043639112974268419066124276008667722071357292290009554170823628 <snip> ***** setting target pretesting digits to 24.31 ***** sum: have completed work to t0.00 ***** work done at B1=2000: 0 curves, max work = 30 curves ***** 30 more curves at B1=2000 needed to get to t24.31 [B]ecm: 30/30 curves on C79 input, at B1 = 2K, B2 = gmp-ecm default [/B]***** setting target pretesting digits to 24.31 ***** t15: 1.00 ***** t20: 0.04 ***** sum: have completed work to t15.18 ***** work done at B1=11000: 0 curves, max work = 74 curves ***** 74 more curves at B1=11000 needed to get to t24.31 [B]ecm: 74/74 curves on C79 input, at B1 = 11K, B2 = gmp-ecm default [/B][/QUOTE] :confused: |
| All times are UTC. The time now is 22:31. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.