mersenneforum.org

mersenneforum.org (https://www.mersenneforum.org/index.php)
-   Msieve (https://www.mersenneforum.org/forumdisplay.php?f=83)
-   -   Factmsieve.py acting strange (https://www.mersenneforum.org/showthread.php?t=18841)

ThomRuley 2013-11-08 23:42

Factmsieve.py acting strange
 
I followed the instructions given by Jeff Gilchrist and thought factmsieve would be working by now.

Instead, I keep getting this error message:

C:\GGNFS>factmsieve.py Nov8.n
-> ________________________________________________________________
-> | Running factmsieve.py, a Python driver for MSIEVE with GGNFS |
-> | sieving support. It is Copyright, 2010, Brian Gladman and is |
-> | a conversion of factmsieve.pl that is Copyright, 2004, Chris |
-> | Monico. Version 0.76 (Python 2.6 or later) 10th Nov 2010. |
-> |______________________________________________________________|
-> This is client 1 of 1
-> Running on 1 Core with 1 hyper-thread per Core
-> Working with NAME = Nov8
-> Could not find the program: msieve151.
-> Did you set the paths properly in this script?
-> They are currently set to:
-> GGNFS_BIN_PATH = c:/ggnfs/
-> MSIEVE_BIN_PATH = c:/ggnfs/example

C:\GGNFS>

I have already checked my directories in factmsieve and I have moved fresh copies of both the factmsieve.py and msieve151.exe files to both GGNFS and to GGNFS/example. So far nothing has worked.

Has anyone else seen this error message?

Thanks

WraithX 2013-11-09 01:14

[QUOTE=ThomRuley;358792]
-> Could not find the program: msieve151.
-> Did you set the paths properly in this script?
-> They are currently set to:
-> GGNFS_BIN_PATH = c:/ggnfs/
-> MSIEVE_BIN_PATH = c:/ggnfs/example[/QUOTE]
Try putting one more '/' character at the end of your MSIEVE_PATH, like so:

MSIEVE_PATH = 'c:/ggnfs/example/'

That should be around line 61 in the factmsieve.py script. Let us know how that goes.

ThomRuley 2013-11-09 01:46

It's doing things now.

Thanks

ThomRuley 2013-11-09 01:54

By doing things, I meant it was busy creating an error message:

[QUOTE]C:\GGNFS\example>factmsieve.py Nov8.n
-> ________________________________________________________________
-> | Running factmsieve.py, a Python driver for MSIEVE with GGNFS |
-> | sieving support. It is Copyright, 2010, Brian Gladman and is |
-> | a conversion of factmsieve.pl that is Copyright, 2004, Chris |
-> | Monico. Version 0.76 (Python 2.6 or later) 10th Nov 2010. |
-> |______________________________________________________________|
-> This is client 1 of 1
-> Running on 1 Core with 1 hyper-thread per Core
-> Working with NAME = Nov8
-> Error: Polynomial file Nov8.poly does not exist!
-> Found n = 5983605243577155301662493679806458394948661690179539915903972736671
4353724882054701072159690092026048116257431.
-> Running polynomial selection ...
-> msieve151 -s .\Nov8.dat -l .\Nov8.log -i .\Nov8.ini -nf .\Nov8.fb -v -np


Msieve v. 1.51 (SVN 845)
Fri Nov 08 20:48:19 2013
random seeds: b7100128 aa7b731e
factoring 5983605243577155301662493679806458394948661690179539915903972736671435
3724882054701072159690092026048116257431 (110 digits)
searching for 15-digit factors
Msieve Error: return value 3221225501. Terminating...

C:\GGNFS\example>[/QUOTE]

This happened twice.

Robert_JD 2013-11-09 06:03

[QUOTE=ThomRuley;358804]By doing things, I meant it was busy creating an error message:



This happened twice.[/QUOTE]

Try setting your DIR_PATH in factmsieve.py to the following doubleslash format. ( I assume you're running a Win OS )

# Set binary directory paths
GGNFS_PATH = 'C:\\ggnfs\\'
MSIEVE_PATH = 'C:\\ggnfs\\example\\'

WraithX 2013-11-09 12:34

[QUOTE=ThomRuley;358804]By doing things, I meant it was busy creating an error message:

-> msieve151 -s .\Nov8.dat -l .\Nov8.log -i .\Nov8.ini -nf .\Nov8.fb -v -np


Msieve v. 1.51 (SVN 845)
Fri Nov 08 20:48:19 2013
random seeds: b7100128 aa7b731e
factoring 5983605243577155301662493679806458394948661690179539915903972736671435
3724882054701072159690092026048116257431 (110 digits)
searching for 15-digit factors
Msieve Error: return value 3221225501. Terminating...

C:\GGNFS\example>

This happened twice.[/QUOTE]

Can you try to manually run the following command in your example directory?

msieve151 -s .\Nov8.dat -l .\Nov8.log -i .\Nov8.ini -nf .\Nov8.fb -v -np

Also, try a variant on it like so:
msieve151 -s ./Nov8.dat -l ./Nov8.log -i ./Nov8.ini -nf ./Nov8.fb -v -np

I think the first one will produce the same error, but the second one might have a chance of working.

If all of that does not work, then, I think it is strange that you get the error right after it is "searching for 15-digit factors". This may indicate that the ecm compiled into msieve is having problems. Try to find another msieve binary and see how that one works in your environment. Let us know how all of this goes.

ThomRuley 2013-11-09 14:21

Robert, I started with your suggestion:

[QUOTE]C:\GGNFS\example>factmsieve.py Nov8.n
-> ________________________________________________________________
-> | Running factmsieve.py, a Python driver for MSIEVE with GGNFS |
-> | sieving support. It is Copyright, 2010, Brian Gladman and is |
-> | a conversion of factmsieve.pl that is Copyright, 2004, Chris |
-> | Monico. Version 0.76 (Python 2.6 or later) 10th Nov 2010. |
-> |______________________________________________________________|
-> This is client 1 of 1
-> Running on 1 Core with 1 hyper-thread per Core
-> Working with NAME = Nov8
-> Error: Polynomial file Nov8.poly does not exist!
-> Found n = 2758382221072303891473724017721005190918080866052086986820596305603
610323043529813765672310629977129.
-> Running polynomial selection ...
-> msieve151 -s .\Nov8.dat -l .\Nov8.log -i .\Nov8.ini -nf .\Nov8.fb -v -np


Msieve v. 1.51 (SVN 845)
Sat Nov 09 09:04:21 2013
random seeds: 030436d0 17b41cfa
factoring 2758382221072303891473724017721005190918080866052086986820596305603610
323043529813765672310629977129 (100 digits)
searching for 15-digit factors
Msieve Error: return value 3221225501. Terminating...
[/QUOTE]

Then I tried what Wraith suggested:
[QUOTE]C:\GGNFS\example>msieve151 -s./Nov8.dat -l./Nov8.log -i./Nov8.ini -nf./Nov8.fb -
v -np

Msieve v. 1.51 (SVN 845)

usage: msieve151 [options] [one_number]

numbers starting with '0' are treated as octal,
numbers starting with '0x' are treated as hexadecimal

options:
-s <name> save intermediate results to <name>
instead of the default msieve.dat
-l <name> append log information to <name>
instead of the default msieve.log
-i <name> read one or more integers to factor from
<name> (default worktodo.ini) instead of
from the command line
-m manual mode: enter numbers via standard input
-q quiet: do not generate any log information,
only print any factors found
-d <min> deadline: if still sieving after <min>
minutes, shut down gracefully (default off)
-r <num> stop sieving after finding <num> relations
-p run at idle priority
-v verbose: write log information to screen
as well as to logfile
-t <num> use at most <num> threads

elliptic curve options:
-e perform 'deep' ECM, seek factors > 15 digits

quadratic sieve options:
-c client: only perform sieving

number field sieve options:

[nfs_phase] "arguments"

where the first part is one or more of:
-n use the number field sieve (80+ digits only;
performs all NFS tasks in order)
-nf <name> read from / write to NFS factor base file
<name> instead of the default msieve.fb
-np perform only NFS polynomial selection
-np1 perform stage 1 of NFS polynomial selection
-nps perform NFS polynomial size optimization
-npr perform NFS polynomial root optimization
-ns perform only NFS sieving
-nc perform only NFS combining (all phases)
-nc1 perform only NFS filtering
-nc2 perform only NFS linear algebra
-ncr perform only NFS linear algebra, restarting
from a previous checkpoint
-nc3 perform only NFS square root

the arguments are a space-delimited list of:
polynomial selection options:
polydegree=X select polynomials with degree X
min_coeff=X minimum leading coefficient to search
in stage 1
max_coeff=X maximum leading coefficient to search
in stage 1
stage1_norm=X the maximum norm value for stage 1
stage2_norm=X the maximum norm value for stage 2
min_evalue=X the minimum score of saved polyomials
poly_deadline=X stop searching after X seconds (0 means
search forever)
X,Y same as 'min_coeff=X max_coeff=Y'
line sieving options:
X,Y handle sieve lines X to Y inclusive
filtering options:
filter_mem_mb=X try to limit filtering memory use to
X megabytes
filter_maxrels=X limit the filtering to using the first
X relations in the data file
filter_lpbound=X have filtering start by only looking
at ideals of size X or larger
target_density=X attempt to produce a matrix with X
entries per column
X,Y same as 'filter_lpbound=X filter_maxrels=Y'
linear algebra options:
skip_matbuild=1 start the linear algebra but skip building
the matrix (assumes it is built already)
square root options:
X,Y use dependencies X through Y, 1<=X<=Y<=64)

C:\GGNFS\example>msieve151 -s.\Nov8.dat -l.\Nov8.log -i.\Nov8.ini -nf.\Nov8.fb -
v -np

Msieve v. 1.51 (SVN 845)

usage: msieve151 [options] [one_number]

numbers starting with '0' are treated as octal,
numbers starting with '0x' are treated as hexadecimal

options:
-s <name> save intermediate results to <name>
instead of the default msieve.dat
-l <name> append log information to <name>
instead of the default msieve.log
-i <name> read one or more integers to factor from
<name> (default worktodo.ini) instead of
from the command line
-m manual mode: enter numbers via standard input
-q quiet: do not generate any log information,
only print any factors found
-d <min> deadline: if still sieving after <min>
minutes, shut down gracefully (default off)
-r <num> stop sieving after finding <num> relations
-p run at idle priority
-v verbose: write log information to screen
as well as to logfile
-t <num> use at most <num> threads

elliptic curve options:
-e perform 'deep' ECM, seek factors > 15 digits

quadratic sieve options:
-c client: only perform sieving

number field sieve options:

[nfs_phase] "arguments"

where the first part is one or more of:
-n use the number field sieve (80+ digits only;
performs all NFS tasks in order)
-nf <name> read from / write to NFS factor base file
<name> instead of the default msieve.fb
-np perform only NFS polynomial selection
-np1 perform stage 1 of NFS polynomial selection
-nps perform NFS polynomial size optimization
-npr perform NFS polynomial root optimization
-ns perform only NFS sieving
-nc perform only NFS combining (all phases)
-nc1 perform only NFS filtering
-nc2 perform only NFS linear algebra
-ncr perform only NFS linear algebra, restarting
from a previous checkpoint
-nc3 perform only NFS square root

the arguments are a space-delimited list of:
polynomial selection options:
polydegree=X select polynomials with degree X
min_coeff=X minimum leading coefficient to search
in stage 1
max_coeff=X maximum leading coefficient to search
in stage 1
stage1_norm=X the maximum norm value for stage 1
stage2_norm=X the maximum norm value for stage 2
min_evalue=X the minimum score of saved polyomials
poly_deadline=X stop searching after X seconds (0 means
search forever)
X,Y same as 'min_coeff=X max_coeff=Y'
line sieving options:
X,Y handle sieve lines X to Y inclusive
filtering options:
filter_mem_mb=X try to limit filtering memory use to
X megabytes
filter_maxrels=X limit the filtering to using the first
X relations in the data file
filter_lpbound=X have filtering start by only looking
at ideals of size X or larger
target_density=X attempt to produce a matrix with X
entries per column
X,Y same as 'filter_lpbound=X filter_maxrels=Y'
linear algebra options:
skip_matbuild=1 start the linear algebra but skip building
the matrix (assumes it is built already)
square root options:
X,Y use dependencies X through Y, 1<=X<=Y<=64)

C:\GGNFS\example>[/QUOTE]

Next stop, a different msieve binary?

Robert_JD 2013-11-09 19:52

[QUOTE=ThomRuley;358844]Robert, I started with your suggestion:



Then I tried what Wraith suggested:


Next stop, a different msieve binary?[/QUOTE]

That is about as good as any suggestion so far. Personally, version 1.49 seems to be the most reliable, fast and stable, especially if less than 120 digits. :smile:

EdH 2013-11-09 22:57

[QUOTE=ThomRuley;358844]C:\GGNFS\example>msieve151 -s./Nov8.dat -l./Nov8.log -i./Nov8.ini -nf./Nov8.fb -v -np[/QUOTE]
I think your trouble with the above command line is that there are no spaces between the options and their values. Try to cut and paste these two lines:
[code]
msieve151 -s ./Nov8.dat -l ./Nov8.log -i ./Nov8.ini -nf ./Nov8.fb -v -np
[/code]or:
[code]
msieve151 -s Nov8.dat -l Nov8.log -i Nov8.ini -nf Nov8.fb -v -np
[/code]

ThomRuley 2013-11-10 03:27

Thanks, Ed

I used your first suggestion in the command line, and it started giving a whole lot of output about i1 scores and too many iterations. Does that mean it's searching for a polynomial to create a matrix for factoring? Am I understanding the overall process correctly?

EdH 2013-11-10 04:41

[QUOTE=ThomRuley;358896]Thanks, Ed

I used your first suggestion in the command line, and it started giving a whole lot of output about i1 scores and too many iterations. Does that mean it's searching for a polynomial to create a matrix for factoring? Am I understanding the overall process correctly?[/QUOTE]It sounds like it is searching, but you could open a couple files with a text editor to see what they say:

Nov8.log should tell you near the end how long, in CPU time, the search will run.

Nov8.dat.p should show you what polynomials have been found so far.

Also, Readme.nfs has a whole lot of the actual workings in detail.

But, this particular command line exercise was designed to see if the error was due to msieve or an interaction with factmsieve.py, (if I'm reading WraithX's intentions correctly). The next step in that direction would be to find the correct settings and options within factmsieve.py to get it to run properly. Using factmsieve.py will save you a lot of manual work after the polynomial is chosen.

Along that line, you may want to revisit the factmsieve.py script and check some of the options to make sure they match your system. The following come to mind (in addition to GGNFS_PATH and MSIEVE_PATH):

NUM_CORES
THREADS_PER_CORE
USE_CUDA (This particular one is defaulted to True, but if you don't have CUDA, I don't know the result. For all my systems, I set this to False.)

Also note that True and False need to be as shown with a capital first letter to be recognized by Python.

Good luck with it.


All times are UTC. The time now is 01:19.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.