Gerhard Niklasch on Wed, 10 May 2000 00:25:20 +0200 (MET DST)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: MPQS Checkpointing?


In response to:
> Message-ID: <Pine.SOL.3.95.1000509154726.15746D-100000@factor.tools.gtei.net>
> From: Andrew Brown <abrown@genuity.net>
> Date: Tue, 9 May 2000 15:57:09 -0400 (EDT)
> 
> In the near future, I will be doing some semi-large (80 to 100 digit) 
> factorizations using PARI's excellent implementation of the MPQS.  I am
> wondering if there is any way to checkpoint the process to disk, as these
> factorizations can run for several weeks.

Rather less than that for 80 digits on contemporary hardware.

Some of my current benchmark examples take between 6 and 26 hours for
input of 80-84 digits, on UltraSPARC-IIi 333MHz CPUs.

100-digit input on the other hand will be quite interesting;  so far
I haven't heard of any successful attempt in this range.  (I tried it
back in 1998, but was thwarted by system crashes or routine shutdowns
each time!)

Thanks to a lot of prodding, pushing, and lateral thinking by Bill Daly,
several improvements in the MPQS code have recently been identified --
please do drop me a line off the list if you're interested in running
your examples on the current bleeding edge code.  You may find many of
them faster by anything between 10% and 35%, and I'll be happy to exploit
every opportunity to have the code crash-tested and fine-tuned on further
examples before it becomes part of the distribution one day.

> Also, using the PARI library, is it possible to split up what ranges or
> polynomials are used during the sieving process?  Can the elimination
> phase take advantage of multiple CPUs?  It would he helpful if there were
> ways to distribute the workload. 

Alas, these are still on the TODO list, and rather nontrivial to
implement, although the basic idea has been on my mind for a long
time.  (One would have to wrap some kind of client-server architecture
around the basic code, beside modularizing the algorithm.  It is not
quite clear to me that this is even feasible without impeding PARI's
portability;  a more realistic approach might be specialized factoring
`daemons' using the PARI library.)  But there's nothing to stop you
from running one gp job on each of your CPUs, each working on its own
factoring task.

Enjoy, Gerhard