![]() |
[QUOTE=henryzz;213147]The time taken increased by 5.5% by increasing lpbr/a from 24 to 32. That's not much difference in time and I would hope that some sieving would be saved by having the extra relations.[/QUOTE]
What extra relations? Any additional relations obtained would be offset by the need to find more relations (because you're using higher lpb). Do you have the statistics of exactly how much relations were found for each of these cases? |
Running small examples will not give an accurate picture of what's going on, because if a small test maintains a reasonable relation rate with 24-bit large primes then the relation rate with larger limits would be enormous. As axn mentioned, this is offset by the fact that it takes much longer to accumulate enough relations so that the number of relations exceeds the number of large primes that occur more than once.
The real acid test is to compare the sieving rate on problems large enough so that the relation rate for small lpb[ra] is extremely low; then incrementing lpbr/lpba will boost the relation rate above and beyond the extra overhead incurred by the more difficult postprocessing. |
[QUOTE=jbristow;119193]I haven't tried using factlat.pl, but from what I hear, it's the easiest way to "fire and forget" on smaller numbers.
I'm still learning, but here's what I'm doing. For GNFS factorizations, I start with pol51m0b and pol51opt. There are suggested parameters for composites of various size in one of the text files included in the ggnfs source. After running these, you'll have some candidate polynomials. For a smaller factorization, I'll just use the one with the best Murphy Score, but for a larger factorization you may want to test-sieve a few. Once you have a polynomial (either from using the GNFS tools above or constructing a SNFS polynomial), you can create an input file and run gnfs-lasieve4I13e (or 4I12e or 4I14e depending on the size of the number). There are suggested sieving parameters in a ggnfs text file, and that's a good place to start. When you get more comfortable with the program, it's good to play around with these parameters to see what impact they have and how can improve them. The siever will create spairs.out files containing partial relations. When I have enough relations, I let msieve to do the postprocessing. Here are some sample input files I have lying around for the various stages. They're all for different numbers. Be sure to use parameters appropriate for the number you're trying to factor. GNFS Polynomial Selection (I specify the important parameters on the command line): [code]n: 416955224390051909645766344571335335970454057745625070613351672491273631395040877044447543182712012172092594092483453878327809 name: InputNumber deg: 5[/code] Sieving: [code]name: 7+4,208 n: 330920012486087349080109790318551271465360626325705572458597079001254847296470672859765423189021129535027618816154932964775467328815332193 deg: 6 c6: 1 c5: -1 c4: -5 c3: 4 c2: 6 c1: -3 c0: -1 Y1: 142734349946674946768896 Y0: -1104427692690664720014850817 skew: 1 type: snfs rlim: 4500000 alim: 4500000 lpbr: 27 lpba: 27 mfbr: 53 mfba: 53 rlambda: 2.4 alambda: 2.4 q0: 4500001 qintsize: 10000000[/code] msieve: [code]N 21794540430563178925786277073735013833408459289340429954014220820936319062595028718005767254056951658089778749214084436566370814330793743233518175202183 R0 -129934811447123020117172145698449 R1 1350851717672992089 A0 3 A1 0 A2 0 A3 0 A4 0 A5 7 FRMAX 4500000 FAMAX 4500000 SRLPMAX 134217728 SALPMAX 134217728 SRTFBITS 52 SATFBITS 52[/code][/QUOTE] Would the A0, A1, etc correspond to 1+x+X^2 and so on? |
Hmm.. I'm having a bit of a problem with the configuration of the files.
The site does state that the following files are needed: [QUOTE]Your ggnfs directory (C:\ggnfs or /ggnfs) should now contain the following files (UNIX users will not have an .exe extension for the executables): def-nm-params.txt def-par.txt factLat.pl factMsieve.pl factmsieve.py ggnfs-doc.pdf gnfs-lasieve4I11e.exe gnfs-lasieve4I12e.exe gnfs-lasieve4I13e.exe gnfs-lasieve4I14e.exe gnfs-lasieve4I15e.exe gnfs-lasieve4I16e.exe makefb.exe matbuild.exe matprune.exe matsolve.exe msieve.exe pol51m0b.exe pol51m0n.exe pol51opt.exe polyselect.exe procrels.exe sieve.exe sqrt.exe[/QUOTE] I do have the files and the working directories the site asks for, as well as the programs needed: (Msieve/GNFS binaries + Python 2.6) [QUOTE]After you have downloaded or compiled the GGNFS binaries, copy them to a directory on your system such as: C:\ggnfs or /ggnfs The GGNFS distribution contains an older version of msieve, you should now copy your newly downloaded or compiled msieve binary over the old one in: C:\ggnfs or /ggnfs Install the python 2.6 or later distribution that you downloaded. Copy your newly downloaded factmsieve.py file to the ggnfs directory: C:\ggnfs or /ggnfs[/QUOTE] But I do have a bit of a problem with what they meant by "overwrite". I'm unsure if the site's writer meant "replace" or "insert". Also, I receive the following error message: "Did you set the paths properly in this script: They are currently set to: GGNFS_BIN_PATH = ../; MSIEVE_BIN_PATH = ../" The site instructs you to set them to exactly that: [QUOTE]Change lines 59-62 from: # Set binary directory paths GGNFS_PATH = '../../bin/x64/Release/' MSIEVE_PATH = '../../../msieve/build.vc9/x64/Release/' to: # Set binary directory paths GGNFS_PATH = '../' MSIEVE_PATH = '../'[/QUOTE] Me thinks this page reeks of errors. :no: Although I probably made mountains of errors myself. My file directory: def-nm-params.txt def-par.txt factLat.pl factMsieve.pl factmsieve.py ggnfs-doc.pdf gnfs-lasieve4I11e.exe gnfs-lasieve4I12e.exe gnfs-lasieve4I13e.exe gnfs-lasieve4I14e.exe gnfs-lasieve4I15e.exe gnfs-lasieve4I16e.exe makefb.exe matbuild.exe matprune.exe matsolve.exe msieve.exe pol51m0b.exe pol51m0bx.exe pol51m0n.exe pol51opt.exe pol51optx.exe polyselect.exe procrels.exe sieve.exe sqrt.exe Another error message: "Could not find the program: msieve" I think Command Prompt is trying to do the following to me: :kitten: |
Update: Got app running, just need proper syntax.
|
def-par.txt ignored?
I have changed the gnfs-parameters in my copy of def-par.txt to this:
[code]gnfs,70,4,51,1500,4.0e-2,0.30,200,12,10000,200,300000,350000,24,24,34,34,1.7,1.7,8000,2000000,200 gnfs,75,4,52,1500,1.2e-2,0.30,200,12,10000,300,350000,400000,24,24,34,34,1.7,1.7,10000,2000000,200 gnfs,80,4,52,1500,5.0e-3,0.30,220,15,10000,400,350000,500000,24,24,37,37,1.7,1.7,10000,2000000,200 gnfs,85,4,56,1500,1.0e-3,0.30,200,15,10000,500,550000,550000,24,24,40,40,1.9,1.9,10000,2000000,200 gnfs,88,4,56,1500,6.0e-4,0.30,200,15,10000,500,600000,600000,25,25,43,43,2.2,2.2,10000,2000000,200 gnfs,90,4,58,2000,2.5e-4,0.30,220,15,10000,600,700000,700000,25,25,44,44,2.4,2.4,40000,2000000,200 gnfs,95,4,60,2000,1.0e-4,0.30,220,15,10000,600,1200000,1200000,25,25,45,45,2.4,2.4,60000,2000000,200 gnfs,100,5,58,1500,3.0e-3,0.4,220,15,10000,2000,1800000,1800000,26,26,48,48,2.5,2.5,100000,4000000,300 gnfs,103,5,59,2000,9.0e-4,0.35,200,15,15000,2000,2300000,2300000,26,26,49,49,2.6,2.6,100000,4000000,300 gnfs,106,5,59,2000,6.0e-4,0.25,200,15,15000,2000,2500000,2500000,26,26,49,49,2.6,2.6,150000,4000000,300 gnfs,110,5,61,2000,1.5e-4,0.3,250,15,50000,2400,3200000,3200000,27,27,50,50,2.6,2.6,100000,4000000,300 gnfs,112,5,61,2000,1.6e-4,0.25,250,15,50000,2800,3500000,3500000,27,27,50,50,2.6,2.6,100000,4000000,300 gnfs,118,5,63,2000,2.6e-5,0.28,250,20,50000,3600,4500000,4500000,27,27,50,50,2.4,2.4,60000,4000000,300 # These next few are guesses based on a few factorizations of that size. But then, I think most of these are. At # some point, we need to gather some stats and figure out reasonable choices # in a systematic way. gnfs,122,5,65,2000,1.0e-5,0.28,250,20,50000,3600,6000000,6000000,27,27,50,50,2.4,2.4,60000,4000000,300 gnfs,126,5,65,2000,1.0e-5,0.28,250,20,50000,3600,8000000,8000000,27,27,51,51,2.5,2.5,100000,4000000,300 [B][COLOR="Blue"]gnfs,128[/COLOR][/B],5,65,2000,1.0e-5,0.28,250,20,50000,3600,[B][COLOR="Red"]11000000,11000000,27,27,52,52,2.6,2.6[/COLOR][/B],100000,4000000,300 gnfs,130,5,65,2000,1.0e-5,0.28,250,20,50000,3600,11000000,11000000,27,27,54,54,2.6,2.6,100000,4000000,300 gnfs,134,5,65,2000,1.0e-5,0.28,250,20,50000,3600,12000000,12000000,28,28,56,56,2.6,2.6,100000,4000000,300 gnfs,137,5,65,2000,1.0e-5,0.28,250,20,50000,3600,15000000,15000000,28,28,56,56,2.6,2.6,100000,4000000,300 gnfs,140,5,65,2000,1.0e-5,0.28,250,20,50000,3600,16000000,16000000,28,28,56,56,2.6,2.6,100000,4000000,300 gnfs,142,5,65,2000,1.0e-5,0.28,250,20,50000,3600,18000000,18000000,28,28,56,56,2.6,2.6,100000,4000000,300 gnfs,145,5,65,2000,1.0e-5,0.28,250,20,50000,3600,20000000,20000000,29,29,58,58,2.6,2.6,100000,4000000,300 gnfs,149,5,65,2000,1.0e-5,0.28,250,20,50000,3600,30000000,30000000,29,29,58,58,2.6,2.6,100000,4000000,300 gnfs,153,5,65,2000,1.0e-5,0.28,250,20,50000,3600,33554431,33554431,29,29,58,58,2.6,2.6,100000,4000000,300 gnfs,157,5,65,2000,1.0e-5,0.28,250,20,50000,3600,42000000,42000000,29,29,58,58,2.6,2.6,100000,4000000,300 gnfs,161,5,65,2000,1.0e-5,0.28,250,20,50000,3600,50000000,50000000,30,30,60,60,2.6,2.6,100000,4000000,300 gnfs,165,5,65,2000,1.0e-5,0.28,250,20,50000,3600,55000000,55000000,30,30,60,60,2.6,2.6,100000,4000000,300 gnfs,171,5,65,2000,1.0e-5,0.28,250,20,50000,3600,67108863,67108863,30,30,60,60,2.6,2.6,100000,4000000,300 gnfs,177,5,65,2000,1.0e-5,0.28,250,20,50000,3600,100000000,100000000,31,31,62,62,2.6,2.6,100000,4000000,300 gnfs,180,5,65,2000,1.0e-5,0.28,250,20,50000,3600,134217726,268435454,31,31,62,62,2.6,2.6,100000,4000000,300 [/code] Now aliqueit has encountered a c129 and started factmsieve.pl to factor it - and I would have expected that it would use: [code]rlim: 11000000 alim: 11000000 lpbr: 27 lpba: 27 mfbr: 52 mfba: 52 rlambda: 2.6 alambda: 2.6[/code] Instead, it is unsing these parameters: [code]n: 236708764512270870267910594603939528512072109211410346931645230023427790084558423739104638523341257857996001764863899983660894883 m: Y0: -8222033980857525894160773 Y1: 91488489895543 c0: -9222601885280082007413455156084 c1: 109094498156246601498372704 c2: 3395885860600535601449 c3: -6049174266708986 c4: -29393783262 c5: 6300 skew: 332552.31 [B][COLOR="Red"]rlim: 6800000 alim: 6400000 lpbr: 28 lpba: 28 mfbr: 55 mfba: 55 rlambda: 2.5 alambda: 2.5[/COLOR][/B] q0: 6487494 qintsize: 12499 #q1:6499993 [/code] Any ideas, why? :help: |
factMsieve.pl lowers the alim and rlim to just under the start of range it is sieving from. It should raise them once it is onto higher ranges.
Chris K |
[QUOTE=chris2be8;216658]factMsieve.pl lowers the alim and rlim to just under the start of range it is sieving from. It should raise them once it is onto higher ranges.
Chris K[/QUOTE] Yes, but why does it use lpbr/a 28 and mfbr/a 55 instead of 27 resp. 52? |
[QUOTE=chris2be8;216658]factMsieve.pl lowers the alim and rlim to just under the start of range it is sieving from. It should raise them once it is onto higher ranges.
Chris K[/QUOTE]Thought there's no need to do this anymore as the lasieve binaries do this themselves? |
[QUOTE=Andi47;216663]Yes, but why does it use lpbr/a 28 and mfbr/a 55 instead of 27 resp. 52?[/QUOTE]
Seems I have found why the def-params.txt was ignored: The parameters file did not contain a line "type: gnfs" (the file was created by aliqueit) and so the following thing happened: [CODE] $DIGS = ([B]$type eq "gnfs"[/B]) ? $realDIGS/0.72 : $realDIGS; # 0.72 is inspired by T.Womack's crossover 28/29 for GNFS-144 among other considerations if($DIGS>=160) { # the table parameters are easily splined; the table may be not needed at all --SB. $RLIM= $ALIM = int(0.07*10**($DIGS/60.0)+0.5)*100000; $LPBR= $LPBA = int(21+$DIGS/25); $MFBR= $MFBA = ($DIGS<190) ? 2*$LPBR-1 : 2*$LPBR; $RLAMBDA= $ALAMBDA= ($DIGS<200) ? 2.5 : 2.6; $QINTSIZE=$QSTEP = 100000; $classicalA = 4000000; $classicalB = 400; $paramDIGS = $realDIGS; }[/CODE] $type was apparently not defined (or at least not set to "gnfs"), and so $DIGS was set to 179.166666666 (=129/0.72) instead of 129. So the "if($DIGS>160)" lines took effect and thus ignored the def-params.txt file. Adding a line which does something like "if $type is not defined, set it to "gnfs"" might help, but I am not very familiar with pearl... I [I]guess[/I] that I have to add: [code]# set your preferred factoring type (snfs or gnfs). This will be overruled iff the polynomial file # contains either "type: gnfs" or "type: snfs". $DEFAULTTYPE="gnfs"[/code] into the configuration section (e.g. just below the line "$NUM_THREADS=$NUM_CPUS;") and (I'm not sure about the following line! Please correct me if I'm wrong!) [CODE]$type = ($type eq "") ? $DEFAULTTYPE : $type[/CODE] just above the line " $DIGS = ($type eq "gnfs") ? $realDIGS/0.72 : $realDIGS;"? BTW: What does the line "my $type=$_[2];" do? Does it read the type from the polynomial file? Edit2: I just found out that the [I]input file[/I] contained the line "type: gnfs", but the poly files which are created by factmsieve.pl for using multiple sieving threads do not contain this line. From which line does factmsieve.pl read the type? Is it possible that the line " $DIGS = ($type eq "gnfs") ?[B] $realDIGS/0.72 : $realDIGS[/B];" gets it the wrong way and it should rather read " $DIGS = ($type eq "gnfs") ?[B] $realDIGS : $realDIGS/0.72;[/B]"? Edit3: I am not very familiar with pearl - do I get it right and the original line means "if $type is equal to "gnfs", then set $DIGS to $realDIGS/0.72, else to $realDIGS"? |
[quote=Andi47;216706]Seems I have found why the def-params.txt was ignored:
The parameters file did not contain a line "type: gnfs" (the file was created by aliqueit) and so the following thing happened: ... [/quote] For use with factMsieve.pl, the file should contain "type: gnfs|snfs" no matter what it was created with. The perl script usually simply stops when this line is missing, and the reason is clear - gnfs and snfs parameters are very different, and [I]guessing[/I] will get you wrong results one way or another. So the perl script doesn't guess and stops - with a suggestion to add this line (unsure why it hasn't stopped in your case). [SIZE=1]For those who doesn't use the script, this line is unimportant, but note that these users (runs sims and) set all the parameters themselves (and others, for distributed projects). That's a different story.[/SIZE] |
| All times are UTC. The time now is 22:54. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.