Re: [math-fun] Mike, on the PDP-6, when you were chasing Mersenne primes (e.g. 11213, 23209, ...) vs Brillhart etc @ TJWatson
Hello, I was asked to supply some background on FFTs primality testing history. I hope you find this useful. =-= As part of the Amdahl 6 group back in the late 1980’s: http://www.isthe.com/chongo/tech/math/prime/amdahl6.html where in 1990, we dethroned Mersenne primes for a few years, we used: http://www.isthe.com/chongo/tech/math/prime/p391581_216193.html http://www.isthe.com/chongo/src/calc/lucas-calc We wrote a 'ultra-high speed multi-precision' package on an Amdahl 1200 (think IBM 370-195 with a long trace vector processor add-on) and implemented a Riesel test. The heart of the package was a multiplication and square routine that was based on the PFA Fast Fourier Transform and on Winograd's radix FFTs. The IBM Floating point used a radix 16 mantissa. But we also had access to Amdahl/IBM micro-code so we could play with the bits "below the end of the double". Our vectors were represented in base 2^23. We used Macsyma using LISP ported to the Amdahl / IBM to build floating point operations to model the Floating-point "math" ops. On top of that we loaded the PFA Fast Fourier Transform and a Winograd's radix FFTs model. It was a HUGE Macsyma operation than ran on the Amdahl 5990 for a few weeks. In the end we were able to prove that using the IBM floating point architecture and base 2^23, we had NO systematic errors. (unlike GIMPS where they just hope it is good enough). While Macsyma was also used to verify the correctness of our code, it played a very important role in our code testing. While the Amdahl 6 was not the first primality testing FFT by any means, it was the first well tuned FFT for primality testing. Our cross-over point for when the FFT was more efficient for Riesel primes, primes of the form: h * 2^n - 1 was just under 1000 decimal digits. Combined with an amazingly efficient sieve on the Amdahl 1200 vector processor, we were cranking out 1000+ digit prime proofs at the rate of 1 every 6 seconds. Our intent was to flood the "Titanic prime list". Until Amdahl 6’s work, a titanic prime was a proven prime that was 1000 or more decimal digits in length. After our flood, where at one point we had 99.95% of the Titanic list, they changed the "Titanic prime" definition: which was fine since that was our goal. :-) =-= I was involved in a Primality test using FFTs on the Cyber 205 in the mid 1980’s. Due to the co-developer, Steve McGrogan wanting to only to start testing when the program was "fully optimized", we missed discovering the prime M86243. While the "fully optimized" routine would have been 42% faster, had we started the first code that passed all of our regression tests, we would have discovered M86243 in only 47 hours. This is why I advise people who are engaged in what Dr. Lehmer called: The great indoor sport of prime number hunting to start with the code that passes your extensive test suite: launch your search modify your source verify by measurement, that your new code rans FASTER verify that your new code passes your QA / regression test suite replace your production code with the new code rinse and repeat Do that until your mods are no longer running faster: likely when the clock time you might save is less than the time it takes to code and test. =-= I wrote a Mersenne LL-test using FFT code that ran on the Cray 1 back in 1980. It was a floating point FFT written in Cray Assembler that was based on the Cray FFT math library. The mods were mostly to deal with the fact that I was doing Mersenne Prime testing that an inline mod 2^n-1 instead of the standard normalization that the FFT required. However that code discovered that there was a reciprocal approximation hardware bug that caused the Mersenne tests for M9689 and M19937 to fail. The fix involved a solder patch to a circuit board in the reciprocal approximation unit. Only the Cray 1’s that were manufactured post Serial number 13 had the fix build in. Unfortunately the 16 machines that were pre SN-13 did not have that fix. There was resistance to fixing the older Cray’s because some numerical code broke when the bug was fixed. Indeed the Cray 1 I used had a jumper that could be changed to turn off the switch. Yes, there were 16 machines prior to #13 .. some Cray machines were not numbered because they were "made to not exist". Indeed the first Cray that could run my FFT code correctly was loaded up into a truck and left in a trailer behind the Safeway supermarket in Livermore California: it was driven away by authorized people. The repair was tested in the field. My code was used to verify the fix. There was a jumper that could enable/disable the fix. The fix did involve in part, an issue of capacitance. In honor of the PDP-10 MIT hack: https://www.cs.utah.edu/~elb/folklore/magic.html the board that was first field repaired contains the inscription: EVEN MORE MAGIC It is my hope that this machine will be moved to a museum someday. Anyway my FFT Mersenne search was halted for reasons you can read between the lines in the above. :-) FYI: We used the MIT-MC Macsyma machine to verify that the Cray 1 ALU was generating wrong values. The Cray was at an ARPANET link site, and so tipping over to MIT-MC to run Lisp code to test was a logical thing to do at that time. =-= When I helped found the EFF Cooperative Computing Awards: http://www.eff.org/awards/coop I put into the rules: https://www.eff.org/awards/coop/rules guidelines that I am NOT eligible for an award. This is because I am chair of the Cooperative Computing Awards advisory panel who helps the EFF determine when a claim is legit, it would be a conflict of interest if I obtained an award. In order to avoid even the appearance of a conflict of interest: I only advise others on primality testing these days. Much as improved from the Amdahl 6 days! See My tutorial: A Grand Coding Challenge! Finding a new Largest Known Prime http://www.isthe.com/chongo/tech/math/prime/prime-tutorial.pdf incorporates the best practices of finding a "new Largest Known Prime". While maybe not quite at "waist height" as Selfridge liked to call it, there is a plum waiting to be picked, that someone with a modest amount of effort could again de-thrown the Mersenne primes and beat GIMPS to a new prime number record. The tutorial in the URL above describes a few approaches to picking a mew "prime plum". I would also be happy ti give video talk on these details to anyone interested. =-= Since I saw a few Q’s about what I did for Moffett Federal Airfield, Lick, Pluto and Voyager: Yes I had a hand in helping save the Blimp Hanger at Moffett Field although there were others who had much bigger hands in saving the hanger. https://en.wikipedia.org/wiki/Moffett_Federal_Airfield Yes, I had a hand in helping prevent Lick Observatory from closing: http://mthamilton.ucolick.org Yes, I played a direct personal role in talking a US Senator into changing their vote to save the New Horizons mission to the dwarf planet Pluto (yes Pluto is a planet, a Dwarf planet): Current New Horizons status: http://pluto.jhuapl.edu And yes, I found the funds to prevent the Voyager spacecraft from being turned off in the mid 1990’s. Current Voyager status: https://voyager.jpl.nasa.gov/mission/status/ =-= I hope this helps. chongo (Landon Curt Noll) /\oo/\
participants (1)
-
Landon Curt Noll