Menu

#2 workaround for failures of the matrix solving step

General
open
nobody
None
5
2014-07-12
2014-07-12
No

Hi,

I use your GGNFS program mainly for aliquot sequences. So far GGNFS crunched at least 227 numbers for me! However in few cases the matrix solving step failed, so I had to manually restart calculations, as the aliqueit program (calling GGNFS) was not able to do that for me automatically. Some time ago I prepared very simple correction in the factMsieve.pl script to handle such situation. This patch works for me since that time. In at least 10 cases it automatically handled the problem with the matrix solving step. Now I decided to public this correction, maybe you will find it useful:

Modified tests/factMsieve.pl file:
@@ -1725,10 +1725,22 @@
if ($CURR_RELS > $MINRELS) {
$cmd="$NICE \"$MSIEVE\" -s $DATNAME -l $LOGFILE -i $ININAME -v -nf $FBNAME -t $NUM_CPUS -nc1";
print "=>$cmd\n" if($ECHO_CMDLINE);
$res=system($cmd);
die "Return value $res. Terminating...\n" if ($res);
+ if ($CLIENT_ID == 1 && -e $COLS && !(-e $DEPFILE)) {
+ print "-> Doing matrix solving step...\n";
+ $cmd="$NICE \"$MSIEVE\" -s $DATNAME -l $LOGFILE -i $ININAME -v -nf $FBNAME -t $NUM_CPUS -nc2";
+ print "=>$cmd\n" if($ECHO_CMDLINE);
+ $res=system($cmd);
+ if ($res || !(-e $DEPFILE)) {
+ # rare case occurred
+ print "The matrix solving step failed. Return code = $res. Will sieve a little bit more.\n";
+ unlink $DEPFILE;
+ unlink $COLS;
+ }
+ }
}
if ($SAVEPAIRS) {
$cmd="$NICE \"$GZIP\" -c spairs.out >> spairs.save.gz";
print "=>$cmd\n" if($ECHO_CMDLINE);
$res=system($cmd);

With regards,
Daniel Błażewicz

1 Attachments

Discussion


Log in to post a comment.