mersenneforum.org Why can't I start factmsieve.py with a poly file, but no factor base?
 Register FAQ Search Today's Posts Mark Forums Read

2018-03-24, 19:01   #23
EdH

"Ed Hall"
Dec 2009

67118 Posts

Quote:
 Originally Posted by chris2be8 Hello, I've just remembered that I renamed the sievers from gnfs-lasieve4I1* to lasieve4I1* so the process table in the system monitor would show which siever was running (it truncated the longer name). So you either need to do that as well or update factMsieve.pl around line 190 to call the original names. Sorry for the omission. It checks if it can find the sievers etc before checking what parms it's been passed. So just run it without parms to check if all the paths are correct. It should only need the lattice sievers, def-par.txt and msieve to run, nothing else from ggnfs. Chris
I've started looking over the scripts and modified factMsieve.pl back to the gnfs-lasieve* names as well as setting up my paths. Should I have a file called check_if_done.pl also?

In bash, I can use $USER within my paths to capture my login. Can I do something similar in perl? Perhaps some version of getlogin()? bash: Code: /home/$USER/Math/etc
perl?:
Code:
/home/+getlogin()+/Math/etc
What do I invoke the scripts with? Do I use a name.n file or a list of numbers? Should I adjust helper ids within each script for all my helpers?

Sorry for all the questions, especially if I should know any of the answers...

Thanks...

Last fiddled with by EdH on 2018-03-24 at 19:02 Reason: Just 'cause...

2018-03-25, 16:02   #24
chris2be8

Sep 2009

36658 Posts

Quote:
 Originally Posted by EdH Should I have a file called check_if_done.pl also?
That's to check if a number is already factored in factordb. I've attached it. Sorry for the omission.
Quote:
 Originally Posted by EdH In bash, I can use $USER within my paths to capture my login. Can I do something similar in perl? Perhaps some version of getlogin()? bash: Code: /home/$USER/Math/etc perl?: [code] /home/+getlogin()+/Math/etc {/code]
I'm not sure. I only had to set the paths in factMsieve.pl once, I just used a hard coded value so it would work from anywhere on my system.
Quote:
 Originally Posted by EdH What do I invoke the scripts with? Do I use a name.n file or a list of numbers? Should I adjust helper ids within each script for all my helpers?
You need to adjust the helper IDs in the script to a different number for each helper. That's to ensure output filenames don't clash. The master doesn't have to know how many helpers there are though.

The way I use the scripts is to export a directory from the master system (with NFS or equivalent) and mount it on the helper systems. Then I put a .poly or .n file in there and start the scripts on each system in that directory without any parameters. Once they are all running I add another .poly or .n for the systems to pick up once they have finished with the last one. So on most of my systems they have been running for more than a year, doing numbers as I feed them in.

Chris
Attached Files
 check_if_done.pl.txt (3.2 KB, 69 views)

 2018-03-25, 18:32 #25 EdH     "Ed Hall" Dec 2009 Adirondack Mtns 3,529 Posts Thanks Chris, I have 30+ machines, any of which I might like to use for a project, so I'm looking at separate factMsieve.pl instances for each if I use absolute addressing. Absolute addressing on every machine means I have to edit every copy. I might be able to use relative addressing and a single instance of factMsieve.pl placed in the mapped drive. In fact, thinking along this line, I might try it with my factmsieve.py system. I was under the impression that factMsieve.pl and factmsieve.py divided up the sieving region based on the client number. If that is not the case, how do they keep from duplicating work? Thanks, Ed
 2018-03-26, 15:59 #26 chris2be8     Sep 2009 1,973 Posts Assuming all your systems run Linux then uncommenting the following line will help if they have different numbers of CPUs: Code: #my $NUM_CPUS=grep '^processor' /proc/cpuinfo | wc -l; chomp$NUM_CPUS; Absolute paths could point to a shared drive with the programs on it. Or you could put the programs in the same place on each system. Or you could set $CHECK_BINARIES to 0 if the programs are in the normal search path (though it still needs a path to def-par.txt). I've not tested that though. The factMsieve.pl I posted keeps from duplicating work by saving the last range in$NAME.lastQ0 (it uses a directory as a lock to serialize updates). Chris

 Similar Threads Thread Thread Starter Forum Replies Last Post jasong Conjectures 'R Us 36 2010-08-03 06:25 Peter Hackman Factoring 7 2009-10-26 18:27 michaf Conjectures 'R Us 18 2008-05-21 10:08 Golem86 Factoring 11 2007-07-17 18:08 hallstei Factoring 5 2005-04-19 11:58

All times are UTC. The time now is 06:07.

Sat Jan 16 06:07:32 UTC 2021 up 44 days, 2:18, 0 users, load averages: 2.41, 2.72, 2.65