On Fri, Nov 27, 2009 at 2:11 PM, torbjornalm <talm@...> wrote:
> I am unning a gnfs with 132 digits.
> When mprime decided that enough relations was found and
> gnerated a matrix, it ended up like this.
> How do I get factMsieve to run more relations?
If you are running a recent version of factMsieve.pl you can create a
file called MINRELS.txt in the directory you have your sieving data
files in. Just put an integer on the first line of the text file.
So if you have say 5000000 relations now and you want it to sieve up
to 6000000 then create a MINRELS.txt file with this content:
6000000
Then it should keep going without calling msieve until you get 6M relations.
Jeff.
On Tue, Nov 24, 2009 at 8:34 PM, Jason Papadopoulos <jasonp@...> wrote:
> Quoting Al Edwards <alwards@...>:
>
>> Is there some sort of academic assignment or competition to crack 150-digit
>> numbers? (There seem to be a lot of questions about 150-digit GNFS on a
>> couple of different places these past few days.)
>
> If you said 154-digit or 155-digit, everyone would get suspicious you
> were cracking an RSA key.
Is that to be discouraged? :) Come on, 512 bit keys? Who'd be silly enough to
use a key that small? Texas is big, you'd think they'd have big keys. :)
Cheers,
David
Quoting Al Edwards <alwards@...>:
> Is there some sort of academic assignment or competition to crack 150-digit
> numbers? (There seem to be a lot of questions about 150-digit GNFS on a
> couple of different places these past few days.)
If you said 154-digit or 155-digit, everyone would get suspicious you
were cracking an RSA key.
------------------------------------------------------
This message was sent using BOO.net's Webmail.
http://www.boo.net/
Between 35 million and 50 million relations should be enough. If you're using 28-bit large primes, then 35-40 million should do it. For 29-bit large primes, figure close to 50 million relations.
Is there some sort of academic assignment or competition to crack 150-digit numbers? (There seem to be a lot of questions about 150-digit GNFS on a couple of different places these past few days.)
--- On Tue, 11/24/09, sportitan <sportitan@...> wrote:
From: sportitan <sportitan@...> Subject: [ggnfs] factoring a 150 digit number To: ggnfs@yahoogroups.com Date: Tuesday, November 24, 2009, 10:08 AM
hello, im
trying to factor a 150 digit number, i wan wondering about how many relations this will need, its been running for a few days and has about 20 million relations, any idea on how many more will be needed?
hello, im trying to factor a 150 digit number, i wan wondering about how many
relations this will need, its been running for a few days and has about 20
million relations, any idea on how many more will be needed?
--- In ggnfs@yahoogroups.com,
"fjuno37" <fjuno37@...> wrote:
> I am currently factoring a 150-digit composite number
> for the form 10^420 + 1
Namely:
{print(#Str(subst(polcyclo(840),x,10)/
(134401*575794801*67501680066009758096678991121)));}
150
Good luck
David
--- In ggnfs@yahoogroups.com, Freddie Witherden <freddie@...> wrote:
>
> Hi,
>
> > You can always use the 'kill -STOP <pid>' and 'kill -CONT <pid>'
> > commands at a unix
> > shell prompt to stop and continue the process. This will cause it to
> > no longer use any
> > CPU--plus it will page out if memory is needed. Maybe a quick cron
> > script to stop/start
>
> Yes, that seems to be just what I need!
>
> I've been playing around with some smaller numbers first -- just to get my
> bearings.
>
> It seems simple to divide up the polynomial selection between multiple
> systems. However, I am unsure how to select the 'best' polynomial. The polysel
> utility that it part of ggnfs seems ideal, but I can not figure out the
correct
> usage of it.
>
> I have a load of polynomials (produced by msieve and then concatenated) along
> with 'n', but can not work out the correct calling convention for the program.
>
> In addition, is there an easy way of gauging if the best polynomial thus far
> is 'good enough'? Is anyone experienced with this?
>
> Other than that everything seems quite well -- msieve is compiled nicely on my
> GNU/Linux and OS X boxes (with the appropriate -march) and the experimental/
> lattice sieve virtually doubles the number of rels/sec for my Core 2 systems.
>
> It is my ultimate aim -- sometime over the Summer -- to write a Python script
> to provide native support for distributing calculations. My current idea is to
> use ssh:// (and by extension the fish:// protocol) for invoking the required
> binaries on target systems) reducing the amount of manual labour required.
>
> Regards, Freddie.
>
Great! Hello, this is the Juno stating that I am currently factoring a 150-digit
composite number for the form 10^420 + 1 and I understood the point of this
advice.
On Saturday 21 November 2009 18:51:58 Al Edwards wrote:
> I have 12 AMD Opteron cores averaging 2.3 GHz, and I run 64-bit Linux so as
> to use the faster 64-bit lattice sievers and GMP-ECM. The C158 was not
> bad:
Does GMP-ECM help with polynomial selection? I thought it was just used to
knock-out small factors?
Finally, when selecting the range to sieve did you just divide up the one
msieve deduced by 4?
Regards, Freddie.
Hello,
On Saturday 21 November 2009 16:38:36 i gad wrote:
> i have problem in compiling the source code for sieve file in GNFS
> ihave dev c++ ,vista
In order to help resolve your problem we are going to require some more
information. Firstly, what file is giving you compiler errors and what form do
these errors take?
Secondly, it is my understanding that dev-c++ has not been updated in a *long*
term. It is therefore likely to come with a very old version of MinGW (3.x).
This may be the source of your compiler errors. In addition, newer versions
are *much* faster (i.e, they produce more efficient code). Try installing MinGW
4.4.
Thirdly, GGNFS appears to come with a build file for MSVC. Microsoft now make
the express edition of Visual Studio available freely. Hence it might be worth
trying to compile GGNFS that way.
Fourthly, I believe Windows binaries are available from the sourceforge page.
These may well be sufficient for your purposes.
(It is probably worth pointing out that I am not a Windows user -- and so may
not be able to offer you any further assistance -- nor can I guarantee that my
knowledge is up-to-date. :)
Regards, Freddie.
> P.S. How did C158 go? Is it feasible with modern hardware?
I have 12 AMD Opteron cores averaging 2.3 GHz, and I run 64-bit Linux so as to use the faster 64-bit lattice sievers and GMP-ECM.
The C158 was not bad:
--Ran polynomial search on 4 cores for 1 week
--Sieved on 12 cores for 11 days
--Relations processing and linear algebra consumed 6 days on one core
That's roughly 166 core-days: less than I had expected.
There was a collaborative factorization of a C180 on mersenneforum about a year ago. Based on the amount of sieving that required, I wouldn't bother with a C180 any time soon! But I wouldn't hesitate to tackle a C170 with my hardware.
Quoting Freddie Witherden <freddie@...>:
> Okay. So my current plan is to run a load of msieve instances (one-per-core-
> per-system). However, msieve auto-selects a range between [0,n] for me for a
> given number. Is it worth me splicing the range so that each system gets its
> own range? Or is the search-space large enough that the chances of two
> systems (randomly) trying the same polynomial are unlikely?
Msieve's poly selector does not randomize anything when given a range of
coefficients to search, so you will crunch the same numbers multiple times.
For very large problems there would probably be some benefit in randomizing
the search space, it's on my todo list.
jasonp
------------------------------------------------------
This message was sent using BOO.net's Webmail.
http://www.boo.net/
On Friday 20 November 2009 23:25:32 Al Edwards wrote:
> Most just run the polynomial selection process for a fixed percentage of
> the time they project the whole process will take. I usually use 5% of the
> sieving time as a number. As you do a few of these, you'll pile of a list
> of e values which constitute good enough for numbers of various
> magnitudes. I don't even bother anymore - mine's zipped up somewhere on a
> backup drive - as I just run the selection process for however long is
> appropriate for the number at hand. The good polynomials are not uniformly
> distributed. I ran 6 core-weeks of selection for a C158, and found good
> ones only at the very beginning and the very end of the process. This is
> why you'll hear many people say that it's better to err on the side of too
> much searching than too little.
Okay. So my current plan is to run a load of msieve instances (one-per-core-
per-system). However, msieve auto-selects a range between [0,n] for me for a
given number. Is it worth me splicing the range so that each system gets its
own range? Or is the search-space large enough that the chances of two systems
(randomly) trying the same polynomial are unlikely?
Other than that, I think I've got the whole polynomial selection bit sussed.
Thank you very much for your help!
Regards, Freddie.
P.S. How did C158 go? Is it feasible with modern hardware?
I have a load of polynomials (produced by msieve and then concatenated) along
with 'n', but can not work out the correct calling convention for the program.
The best polynomial is almost always found among the polynomials with the largest values of the 'e' parameter given in msieve.dat.p. On large GNFS jobs, I scoop out the top few, together with some other close ones that have the most negative alpha values, and test sieve them. It's not likely that your best polynomial will not be among the top few e values, but I have seen it happen. However, the difference in performance is usually not substantial. The few cases that come to mind all had large negative alpha values and e values very close to the top of the heap.
You're probably safe just taking the best e value anyway. The top
polynomials are few and far between, and anything with an e value more than a little smaller will be inferior anyway.
In addition, is there an easy way of gauging if the best polynomial thus far
is 'good enough'? Is anyone experienced with this?
Most just run the polynomial selection process for a fixed percentage of the time they project the whole process will take. I usually use 5% of the sieving time as a number. As you do a few of these, you'll pile of a list of e values which constitute good enough for numbers of various magnitudes. I don't even bother anymore - mine's zipped up somewhere on a backup drive - as I just run the selection process for however long is appropriate for the number at hand.
The good polynomials are not uniformly distributed. I ran 6 core-weeks of selection for a C158, and found good ones only at the very beginning
and the very end of the process. This is why you'll hear many people say that it's better to err on the side of too much searching than too little.
Hi,
> You can always use the 'kill -STOP <pid>' and 'kill -CONT <pid>'
> commands at a unix
> shell prompt to stop and continue the process. This will cause it to
> no longer use any
> CPU--plus it will page out if memory is needed. Maybe a quick cron
> script to stop/start
Yes, that seems to be just what I need!
I've been playing around with some smaller numbers first -- just to get my
bearings.
It seems simple to divide up the polynomial selection between multiple
systems. However, I am unsure how to select the 'best' polynomial. The polysel
utility that it part of ggnfs seems ideal, but I can not figure out the correct
usage of it.
I have a load of polynomials (produced by msieve and then concatenated) along
with 'n', but can not work out the correct calling convention for the program.
In addition, is there an easy way of gauging if the best polynomial thus far
is 'good enough'? Is anyone experienced with this?
Other than that everything seems quite well -- msieve is compiled nicely on my
GNU/Linux and OS X boxes (with the appropriate -march) and the experimental/
lattice sieve virtually doubles the number of rels/sec for my Core 2 systems.
It is my ultimate aim -- sometime over the Summer -- to write a Python script
to provide native support for distributing calculations. My current idea is to
use ssh:// (and by extension the fish:// protocol) for invoking the required
binaries on target systems) reducing the amount of manual labour required.
Regards, Freddie.
On Wed, Nov 18, 2009 at 2:28 PM, Freddie Witherden
<freddie@...> wrote:
> # Also, trying to exit with Ctrl-C doesn't seem to work correctly.
>
> Does this make it impossible to suspend/resume the sieving operation?
Freddie,
You can always use the 'kill -STOP <pid>' and 'kill -CONT <pid>'
commands at a unix
shell prompt to stop and continue the process. This will cause it to
no longer use any
CPU--plus it will page out if memory is needed. Maybe a quick cron
script to stop/start
it during given hours will help you?
Cheers,
David
On Wednesday 18 November 2009 18:38:04 Al Edwards wrote:
> Even the polynomial selection can now be parallelized: msieve can be run on
> different coefficient ranges simultaneously.
Yes, I think I remember seeing that when I ran msieve --help (the [X,Y]
range). However, how should one go about determining the overall range (is it
0..Y or X..Y and is the relationship linear, i.e, if the range is halved does
the respective time also half?)
In addition will multiple output files be generated automatically and what
about selecting the overall 'best' polynomial?
> As for ggnfs, you can use the
> script to run the lattice-sieving, or call the lattice sievers yourself
> using the syntax: gnfs-lasieve4I14e -r foo.poly -f 8000000 -c 500000 -o
> 80_85R
> to sieve over rational special-q (use -a to sieve over algebraic ones) from
> 8 million to 8.5 million.
What is the difference between the two? (From math analysis I know the
difference between the rational, Q, and algebraic, A fields -- but am unsure how
they relate to the sieving process.
> Once you have sieved for the relations, you
> should use msieve for the post-processing, linear algebra, and square
> root. See the factMsieve.pl script for details. (This may be incorporated
> into the factLat.pl script in the latest subversion - I haven't checked in
> a while.) Anyway, I have just given an outline.
They still appear to be distinct files. Browsing through the source for
factMsieve (W.R.T. multiple lattice sieves):
# Also, trying to exit with Ctrl-C doesn't seem to work correctly.
Does this make it impossible to suspend/resume the sieving operation?
Regards, Freddie.
to sieve over rational special-q (use -a to sieve over algebraic ones) from 8 million to 8.5 million.
Once you have sieved for the relations, you should use msieve for the post-processing, linear algebra, and square root. See the factMsieve.pl script for details. (This may be incorporated into the factLat.pl script in the
latest subversion - I haven't checked in a while.)
Anyway, I have just given an outline. You should be able to crack a 150-digit integer in under a week on a quad-core.
Hi all,
As inferred from the subject I am interested in factoring an ~150 digit
composite (p*q where p and q are prime; p != q). It is my understanding that
by using GGNFS and Msieve that this is possible in the ~2 month range with
high-end commodity hardware.
(Firepower wise I have 7 GNU/Linux Core 2 systems with between 2-8GiB of
memory each with a 1GBit/s backbone.)
While I have some experience using Mseieve w/QS factoring a 113 digit number I
am quite new to GGNFS and the use of multiple systems/cores to accelerate the
process.
I have successfully compiled/run the SVN versions of both GGNFS and Msieve.
Following the advice given in [1] I have successfully factored some smaller
numbers given in the tests directory for GGNFS.
From what I can discern, in order to factor a 150+ digit number one needs to:
1) Use Msieve to select a polynomial, running it for as long as possible. This
can only be performed on a single system.
2) Use GGNFS to sieve the polynomial and 'solve' the resulting matrix. Sieving
can be easily distributed, matrix solving can not and is memory intensive.
However, I am unsure how to divide up the workload, some of the systems (non-
servers) are not always available and so being able to Ctrl+C and then resume
is seemingly required.
Does anyone have any experience on factoring a number of this magnitude, and
if so what advice can you give me. How did you divide up the workload? Was NFS
(network file system!) or SMB used or were files just copied? I have found some
good information over at http://www.mersenneforum.org but nothing definitive.
[1] http://gilchrist.ca/jeff/factoring/nfs_beginners_guide.html
Regards, Freddie.
On Tue, Nov 17, 2009 at 12:43 AM, H.M.B. Ibrahim <hmb.ibrahim@...> wrote:
> I would be thankful if someone provide me the estimated time to run GGNFS on
different integers.
> You can fix any machine, for example core2 due 2.ghz. and changes the size of
the input , for
> example 100, 110,120, 130, 140, 150. I want this information because I teach
computational
> number theory in math. depart, cairo, egypt.
You can get good estimates from these graphs here:
http://homepage2.nifty.com/m_kamada/math/graphs.htm
There are total time graphs for both GNFS and SFNS, The GNFS graph
will show you the numbers you want, GNFS difficulty of 150 = 150
digits.
Jeff.
I would be thankful if someone provide me the estimated time to run GGNFS on different integers. You can fix any machine, for example core2 due 2.ghz. and changes the size of the input , for example 100, 110,120, 130, 140, 150. I want this information because I teach computational number theory in math. depart, cairo, egypt.
Dear Chris,
Did you have time to make it work?
We will gladly help to hammer on it and try to find and (possibly try to help
to) fix some bugs. Block Wiedemann implementation is of particular interest.
This is priceless.
However, real life should take precedence, so please don't take it as any bit of
pressure. If it's too early, then so it is. No problem.
Thank you in advance,
-Serge
--- In ggnfs@yahoogroups.com, "monico.chris" <monico.chris@...> wrote:
>
> Hello all,
> Just wanted to let you all know that I finally plan to release a
> beta 1.0 version of GGNFS in the near future. The post-processing
> changes are all quite radical, with a near complete rewrite of
> everything. Notable changes will include:
> ...
> (4) A multi-threaded block Wiedemann implementation for multicore
> chips (I've had a multi-threaded Lanczos implementation lying around
> for a while, but I think I lost interest before hammering out
> all the kinks. Anyway, I think this should be a little better).
> ...
>
> My hope is to have something beta out within a couple of months;
> perhaps sooner, possibly a little later. But I have a few specific
> experiments I'd like to do, so it will get done. Anyway, just wanted
> to drop a quick little note.
>
> Happy factoring!
> Chris
>
Hi,
I am currently running the command:
perl factmsieve.pl ..\..\example.n
and factmsieve.pl is running pol51opt and pol51m0b searching for leading
coefficients.
If there is a power failure, or I decide to interupt the script, how can I
resume it, so that it will continue searching for leading coefficients?
Please advise.
Thank you.