On 4 May 00, at 19:58, Nathan Russell wrote:

> The roundoff warnings essentially mean that the multiplication your
> machine is less accurate than the developers thought it ought to be.

Yes, those of us running Mlucas _know_ that there is a problem in 
this area, with at least some architectures.

> It so
> happens that the last number you  tested has an exponent that is only a
> few hundred thousand below the point at which it would choose to do a more
> accurate multiplication.

Less than that - the critical point in Mlucas 2.7z is 10110000 (cf 
10320000 for Prime95). Obviously even this is a bit high for safety.

For the critical points for other FFT run lengths, refer to 
ftp://209.133.33.182/pub/mayer/gimps_timings2.html

The reason why Mlucas should be "less accurate" is that the floating-
point hardware is pure IEEE G-float (53-bit mantissa) whereas, whilst 
Prime95 stores FP values in memory in the same format, internal 
calculations in the FP registers use a proprietary Intel format with 
a 64-bit mantissa (plus sign, plus 15-bit exponent, making a length  
of 80 bits in total - awkward on modern systems with native 32-bit, 
or longer, data bus architecture!)

> The roundoff error is simply the distance that the result of the iteration
> was from the nearest integer.  As long as the nearest integer was the
> right one, this is not a problem.  However, if it was wrong, your whole
> result in faulty.  The Lucas-Lehmer test is completely intolerant of error

Explanation perfect so far ...

> and, in fact, acts in such a way that the very next iteration after an
> error will scramble the next term in the test sequence beyond recognition.

Hmm. If you get just one bit wrong, in general terms the number of 
suspect bits will double with each iteration. 

> In order to ruin your work, the roundoff error would have to be greater
> than .5; however, it will always appear as a value less than .5.

If you report a rounding error of x then it means that the absolute 
value of the difference between the computed value and the nearest 
integer was x. Of course you could be measuring to the wrong integer, 
e.g. if you went wrong by 0.7 you would pick the wrong integer & 
return the roundoff error as 0.3.

For fairly obvious reasons you _can_ get a roundoff error of exactly 
0.5 - but no bigger than that.

Depending on the FFT method used, there may actually be a strong 
tendency for computed values of roundoff error to be of the form 
k/2^n, where k is a fairly small integer. Now the following 
information from Richard Otter's original message is interesting:

>M10068757 Roundoff warning on iteration  126683 maxerr =  
0.406250000000
>M10068757 Roundoff warning on iteration 1992762 maxerr =  
0.437500000000
>M10068757 Roundoff warning on iteration 2747426 maxerr =  
0.437500000000
>M10068757 Roundoff warning on iteration 3383066 maxerr =  
0.437500000000
>M10068757 Roundoff warning on iteration 3941973 maxerr =  
0.437500000000
>M10068757 Roundoff warning on iteration 6161725 maxerr =  
0.406250000000
>M10068757 Roundoff warning on iteration 7988178 maxerr =  
0.437500000000
>M10068757 Roundoff warning on iteration 8877411 maxerr =  
0.437500000000
>M10068757 Roundoff warning on iteration 9634654 maxerr =  
0.437500000000
>M10068757 Roundoff warning on iteration 9803267 maxerr =  
0.437500000000
>M10068757 is not prime. Res64: AEED24F91193EE6F. Program: E2.7z

There are only two values of roundoff error reported - 0.40625 = 
13/2^5 and 0.4375 = 7/2^4. So it looks as though Mlucas has an 
algorithm which generates k/2^n roundoff errors. Note that, if there 
was a hardware problem, we'd expect to get at least some results not 
following the k/2^n pattern.

> Since
> none of your roundoff errors are even near .5, it is reasonable to suppose
> that none are over this value.

I'd prefer to say that _none_ of the "preferred" values 29/2^6, 15/2^5, 31/2^6
are observed. It's unlikely (but not impossible) that we'd get an actual 
roundoff >= 0.5 without hitting a value in (0.4375,0.5] at least occasionally.

> In any event, IMHO you should send the result.  The worst thing that will
> happen is that you will lose credit for it in a year or two, when someone
> running double-checking finds a mismatch and someone else confirms the
> problem.  In this case, GIMPS will have expended no more effort than if
> you did not turn in the result at all.

Absolutely.


Regards
Brian Beesley
_________________________________________________________________
Unsubscribe & list info -- http://www.scruz.net/~luke/signup.htm
Mersenne Prime FAQ      -- http://www.tasam.com/~lrwiman/FAQ-mers

Reply via email to