home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Science / Science.zip / primeos2.zip / readme.txt < prev    next >
Text File  |  1998-12-24  |  24KB  |  506 lines

  1.  
  2. Welcome to the Great Internet Mersenne Prime Search!
  3.  
  4. In case you ever forget, the URL is http://www.mersenne.org/prime.htm.
  5. My email address is woltman@magicnet.net.
  6. For networking questions, contact Scott Kurowski at kurowski@entropia.com.
  7.  
  8.  
  9. FILE LIST
  10. ---------
  11.  
  12. readme.txt    This file.
  13. mprime        The program to factor and run Lucas-Lehmer tests on
  14.         Mersenne numbers.
  15. whatsnew.txt    A list of new features in mprime.
  16. prime.ini    A file containing your preferences.  The menu choices
  17.         and dialog boxes are used to change your preferences.
  18. local.ini    Like prime.ini, this file contains more preferences.
  19.         The reason there are two files is discussed later.
  20. worktodo.ini    A list of exponents the program will be factoring
  21.         and/or Lucas-Lehmer testing.
  22. results.txt    Mprime writes its results to this file.
  23. prime.log    A text file listing all messages that have been sent
  24.         to the PrimeNet server.
  25. prime.spl    A binary file of messages that have not yet been sent to
  26.         the PrimeNet server.
  27. pnnnnnnn &    Intermediate files produced by mprime to resume
  28. qnnnnnnn    computation where it left off.
  29. database    This optional binary file is downloaded separately.  You only
  30.         need this file if you are not using the PrimeNet server.
  31.         It contains all the Mersenne exponents that still need testing.
  32.  
  33.  
  34. WHAT IS THIS PROGRAM?
  35. ---------------------
  36.  
  37. This program is used to find Mersenne Prime numbers.  See
  38. http://www.utm.edu/research/primes/mersenne.shtml for a good
  39. description of Mersenne primes.  Mersenne numbers can be proved
  40. composite (not prime) by either finding a factor or by running
  41. a Lucas-Lehmer primality test.
  42.  
  43.  
  44. COMMAND LINE ARGUMENTS
  45. ----------------------
  46.  
  47. These command line arguments can be used to schedule prime95.exe to
  48. run only at certain times of the day or at a different priority.  Note
  49. that raising the program's priority will not make it run any faster
  50. on an idle machine.
  51.  
  52. -An        This is used to run two or more copies of mprime
  53.         from the same directory.  Using this switch causes mprime
  54.         to use a different set of filenames for the INI files,
  55.         the results file, the log file, and the spool file.
  56.         Just use a different value of n for each copy of
  57.         mprime you start.
  58. -d        Prints more detailed information to stdout.  Normally
  59.         mprime does not send any output to stdout.
  60. -m        Bring up the menus to set mprime's preferences.
  61. -v        Print the version number of mprime.
  62. -Wdirectory    This tells prime95 to find all its files in a different
  63.         directory than the executable.
  64.  
  65.  
  66. INSTRUCTIONS
  67. ------------
  68.  
  69. There are two ways to use this program.  The automatic way uses
  70. a central server, which we call the PrimeNet server, to get work to do
  71. and report your results.  Anyone with Internet access, even dial-up users,
  72. should use this method.  You do not need a permanent connection to the
  73. Internet.
  74.  
  75. The second method is the manual method.  It requires a little more work
  76. and monitoring.  I recommend this for computers with no Internet access
  77. or with some kind of firewall problem that prevents the automatic method
  78. from working.
  79.  
  80. If you are running this program at your place of employment, you should
  81. first GET PERMISSION from your network administrator or boss.  This is
  82. especially true if you are installing the software on several machines.
  83. Some companies are reluctant to run any software they are not familiar with.
  84.  
  85.  
  86. INSTRUCTIONS FOR THE AUTOMATIC METHOD
  87. -------------------------------------
  88.  
  89. 1)  Download and decompress mprime.tgz.  You've probably done this already
  90.     since you are reading this file.
  91. 2)  Connect to the Internet.
  92. 3)  Run mprime.  You will be see 3 sets of questions:
  93. 3a) The first set gathers information about you.  Enter your name and email
  94.     address.  Optionally enter a user ID and password.  An easy-to-remember
  95.     user ID will be helpful if you plan to visit the PrimeNet server's web
  96.     page to view reports on your progress.  If you do not enter a user ID
  97.     or if you pick a user ID that is already in use, then the server will
  98.     assign a user ID.
  99. 3b) The second set of questions gathers information about your machine.
  100.     Change the CPU type and speed as necessary.  Fill in roughly how many
  101.     hours a day you leave your computer running.
  102. 3c) The third set of questions gathers information about using the
  103.     Primenet server.  Note that mprime will never dial-up to connect to
  104.     the Internet, rather it waits for a time when you are already connected
  105.     to contact the server.  Mprime will now contact the PrimeNet server to
  106.     get some work for your computer to do.
  107. 4)  If you are using a proxy server you may need to do some further
  108.     configuration.  See the later secion on "SETTING UP A PROXY SERVER".
  109. 5)  Configure your startup scripts so that mprime runs every time you
  110.     boot your computer.
  111.  
  112.  
  113. MANUAL METHOD INSTRUCTIONS #1
  114. -----------------------------
  115.  
  116. 1)  Use the Web (http://entropia.com/ips/manualtests.html) to create
  117.     a userid for yourself and to get a set of exponents to work on.
  118.     Copy these exponents to a file called worktodo.ini
  119. 2)  Run mprime.  You will be see 3 sets of questions:
  120. 2a) The first set gathers information about you.  Enter your name and email
  121.     address.
  122. 2b) The second set of questions gathers information about your machine.
  123.     Change the CPU type and speed as necessary.  Fill in roughly how many
  124.     hours a day you leave your computer running.
  125. 2c) The third set of questions gathers information about using the
  126.     Primenet server.  Answer "No" to the first question.
  127. 3)  Configure your startup scripts so that mprime runs every time you
  128.     boot your computer.
  129. 4)  Once a month or when done with your exponents, use the web pages
  130.     again to send the file "results.txt" to the PrimeNet server.
  131.     It is important to do this so the exponents you are testing are
  132.     not reassigned to someone else.
  133.  
  134.  
  135. MANUAL METHOD INSTRUCTIONS #2
  136. -----------------------------
  137.  
  138. 1)  Download and decompress database.gz or database.zip.
  139. 2)  Use the Web (http://www.mersenne.org/range2.htm) to select a range of
  140.     exponents to test.  Send me e-mail on the range you've chosen.
  141.     This prevents others from testing the same range.
  142. 3)  Run mprime.  You will be see 3 sets of questions:
  143. 3a) The first set gathers information about you.  Enter your name and email
  144.     address.
  145. 3b) The second set of questions gathers information about your machine.
  146.     Change the CPU type and speed as necessary.  Fill in roughly how many
  147.     hours a day you leave your computer running.
  148. 3c) The third set of questions gathers information about using the
  149.     Primenet server.  Answer "No" to the first question.
  150. 4)  Choose Test/Manual Operation from the menus.  Enter the type of work
  151.     and range of exponents you selected in step 2.
  152. 5)  Configure your startup scripts so that mprime runs every time you
  153.     boot your computer.
  154. 6)  Once a month or when done with your range, send the file "results.txt" to
  155.     woltman@magicnet.net.  It is important to do this so the exponents
  156.     you've tested can be removed from the master list.
  157.  
  158.  
  159. NOTES
  160. -----
  161.  
  162. Let mprime run at all times.  It runs at low priority, making use of all
  163. your idle CPU cycles.  It should not interfere with your normal work.
  164. Let the program run overnight and on weekends.  Never turn
  165. your computer off.  Turn off your monitor to conserve energy.  NOTE:
  166. Running your computer non-stop could increase your electric bill by $30
  167. per year or more.
  168.  
  169. It can take many CPU days to test a large Mersenne number.  This program
  170. can be safely interrupted by using ^C or kill or shutdown to write
  171. intermediate results to disk.  This program also saves intermediate
  172. results to disk every 30 minutes in case there is a power failure.
  173.  
  174. To fully utilize a dual-CPU machine, you must run two copies of
  175. mprime.  Run one copy of mprime as described above.  Run the second
  176. copy of mprime with the -A1 switch.  Make sure your startup scripts
  177. start both executables.
  178.  
  179. You can compare your computer's speed with other users by checking the
  180. site http://www2.tripnet.se/~nlg/mersenne/benchmk.htm.
  181.  
  182. You can get a report of your PrimeNet server account status on the web
  183. (http://entropia.com/primenet/status.shtml).  Type your UserID and
  184. password into the web form, and click "Get Account Report".  You can
  185. get your UserID and password from the Test/User Information
  186. dialog box.
  187.  
  188. Information about running a local PrimeNet server is also available.
  189. See http://entropia.com/primenet.  If you have any questions about the
  190. PrimeNet server, you can send e-mail to primenet@entropia.com.
  191.  
  192. The first time you run this program it will perform an hour long
  193. self-test to make sure the Lucas-Lehmer code is running properly
  194. on your system.  There are 16 different self-tests, one for each
  195. FFT size.  You can run all 16 self-tests with Options/Self Test
  196. menu choice.  This is not required.
  197.  
  198. Depending on the exponent being tested, the program may decide that it
  199. would be wise to invest some time checking for small factors before
  200. running a Lucas-Lehmer test.  Furthermore, the program may start factoring
  201. exponents before a previous Lucas-Lehmer test completes.  This is normal!
  202. The program will resume the Lucas-Lehmer test when the factoring
  203. completes.
  204.  
  205. For manual users, once you've started testing a range there is no advantage
  206. in downloading a new database.  After your range completes, you can download
  207. a new database before you start your next range.
  208.  
  209. You can configure this program to have different properties at different
  210. times of the day and/or to not run during certain times of the day.
  211. Unfortunately, you must manual edit the prime.ini file.  Let's say you
  212. want to install the program on a friend's machine and he runs a screen
  213. saver at night.  He also runs a disk defragmenter at midnight on weekdays.
  214. This prime.ini file will run the program at a higher priority than his
  215. screen saver at night and on weekends.  It also sleeps for an hour when
  216. his defragmenter starts running.  Finally, at night fewer save files are
  217. generated to allow his disk to stay powered down longer.
  218.     UserID=foo
  219.     Time=1-5/8:30-17:30
  220.     Priority=1
  221.     DiskWriteTime=30
  222.     Time=1-5/1:00-8:30,1-5/17:30-24:00,6-7/0:00-24:00
  223.     Priority=5
  224.     DiskWriteTime=240
  225. The 1-5 refers to days of the week, with Monday=1 and Sunday=7.  The 
  226. time portion refers to the hours of the day based on a 24-hour clock.
  227. You do not need to specify days of the week (e.g. Time=1-7/0:00-8:00
  228. is the same as Time=0:00-8:00).  Unpredictable results will occur if
  229. there are overlapping time intervals.  Also note that any options that
  230. appear in the Time= sections should not appear earlier in the prime.ini
  231. file and you can no longer edit these options from theuser interface.
  232.  
  233.  
  234. SETTING UP A PROXY SERVER
  235. -------------------------
  236.  
  237. Create a file called "primenet.ini" in the same directory as mprime.
  238. Add the line "ProxyHost=foo.com:1234" where foo.com is the proxy and
  239. 1234 is the port (which defaults to 8080 if not specified). This line must
  240. be in the .ini file ONLY if connection via a proxy is actually required.
  241.  
  242.  
  243. PROGRAM OUTPUT
  244. --------------
  245.  
  246. On screen you will see:
  247.  
  248. Factored M400037 through 17517*2^32 (pass 3 of 16). Clocks: 24235224=0.121 sec.
  249.     This means mprime is in the third pass of a 16 pass process to
  250.     find a small factor of 2^400037-1.  
  251. Iteration: 941400 / 1667747.  Clocks: 21889762 = 0.109 sec.
  252.     This means mprime just finished the 941400th iteration of a
  253.     Lucas-Lehmer primality test.  The program must execute 1667747
  254.     iterations to complete the primality test.  The average iteration
  255.     took 21889762 "clock cycles" or 0.109 seconds.
  256.  
  257. The results file and screen will include lines that look like:
  258.  
  259. M2645701 has a factor: 13412891051374103
  260.     This means to 2^2645701-1 is not prime.  It is divisible
  261.     by 13412891051374103.
  262. M2123027 no factor to 2^57, WS2: 14780E25
  263.     This means 2^2123027-1 has no factors less than 2^57.  The Mersenne
  264.     number may or may not be prime.  A Lucas-Lehmer test is needed
  265.     to determine the primality of the Mersenne number.  WS2 is
  266.     the program version number.  14780E25 is a checksum to guard
  267.     against email transmission errors.
  268. M1992031 is not prime. Res64: 6549369F4962ADE0. WS2: B253EF24
  269.     This means 2^1992031-1 is not prime - a Lucas-Lehmer test says so.
  270.     The last 64 bits of the last number in the Lucas-Lehmer sequence
  271.     is 6549369F4962ADE0.  At some future date, another person using
  272.     another program will run the same Lucas-Lehmer test.  If his last 64
  273.     bits match yours, then both machines ran flawlessly and it is 100%
  274.     certain that the Mersenne number is composite.  WS2 is the program
  275.     version number.  B253EF24 is a checksum to guard against email
  276.     transmission errors.
  277. M11213 is prime! WS2: 579A579A
  278.     This means 2^11213-1 is a Mersenne prime!  WS2 is the program
  279.     version number.  579A579A is a checksum to guard against email
  280.     transmission errors.
  281.  
  282.  
  283. RUNNING MPRIME ON SEVERAL COMPUTERS
  284. -----------------------------------
  285.  
  286. The easiest way to do this is to first set up mprime on one computer.
  287. Next copy all the files to the second computer.  Delete the local.ini
  288. file and worktodo.ini files.  These files contain information that
  289. is specific to the first computer.  Start mprime on the second
  290. computer and optionally use Test/User Information to
  291. give the second computer a unique computer ID.  Repeat this process
  292. for all the computers you wish to run mprime on.
  293.  
  294. If you do not follow the instruction above, be sure you use 
  295. Test/User Information to give each computer the same
  296. userid and password.  Failure to do this will result in all 
  297. your work being "credited" to different user IDs.
  298.  
  299.  
  300. TEST MENU
  301. ---------
  302.  
  303. The PrimeNet menu choice lets you configure the type of work you get
  304. from the server.  The "Use PrimeNet..." option can be turned on to
  305. switch from the manual method to the automatic method.
  306. The "Request whatever..." box should be left checked.  However, if you
  307. are running a slow computer and don't mind waiting several months for
  308. a single Lucas-Lehmer test to complete OR you are running a faster
  309. computer and would rather do factoring, then uncheck this box and
  310. choose a different type of work to do.  The "Days of work to get" should
  311. be changed based on how often you connect to the Internet.  As long as
  312. you connect at least once in the given time period, mprime will have
  313. an uninterrupted stream of work.  However, the program will not checkout
  314. more than 20 exponents no matter what "Days of work to get" is set at.
  315.  
  316. The Manual Operation menu choice allows you to select a range of
  317. exponents to work on.  You may also use this menu choice to add
  318. to your existing work (e.g. when you are running low on exponents
  319. to test).
  320.  
  321. The User Information menu choice lets you change your name and email
  322. address.  Your name will be used in credits and "top producers"
  323. web pages.  Your email address will be used to send you warnings if
  324. an exponent you have reserved is about to expire and to send you a
  325. newsletter once every few months.  Select the no email checkbox to
  326. stop the server from sending expiration warnings.  The userid you
  327. use will appear in the status pages on the PrimeNet server.  You can
  328. also set the ComputerID field if you have several computers and want
  329. to keep track of which computers produced which results.
  330.  
  331. The Vacation/Holiday menu choice lets mprime update the expected completion
  332. dates on the PrimeNet server.  This will prevent one of your exponents
  333. from being reassigned while you're gone.  Also, if you are taking a
  334. long vacation, mprime will get extra exponents to test.  For example,
  335. if you are leaving immediately for a 6 week vacation, connect to the
  336. Internet and choose 42 days.  If you are leaving in two days for a 6
  337. week vacation, then set choose 44 days.  Primenet will send the new
  338. completion dates whenever you connect to the Internet over the next 2 days.
  339.  
  340. The Status menu choice will tell you what exponents you are working on.
  341. It will also estimate how long that will take and
  342. your chances of finding a new Mersenne prime.
  343.  
  344. The Continue menu choice lets you resume mprime after you have stopped it.
  345.  
  346. The Exit menu choice lets you exit the program.
  347.  
  348.  
  349. ADVANCED MENU
  350. -------------
  351.  
  352. You should not need to use the Advanced menu.  This menu choice is
  353. provided only for those who are curious to play with.
  354.  
  355. The Test choice can be used to run a Lucas-Lehmer test on one Mersenne
  356. number.  Enter the Mersenne number's exponent - this must be a prime
  357. number between 7 and 5259999.
  358.  
  359. The Time choice can be used to see how long each iteration of a Lucas-Lehmer
  360. test will take on your computer and how long it will take to test a
  361. given exponent.  For example, if you want to know how long a Lucas-Lehmer
  362. test will take to test the exponent 876543, choose Advanced/Time and
  363. enter 876543 for 100 iterations.  A Pentium will automatically time
  364. and compute the results.  486 owners will need to time how long the operation
  365. takes by hand, divide that time by 100 and multiply by 876543 to compute how
  366. long a full Lucas-Lehmer test will take.
  367.  
  368. The ECM choice lets you factor small Mersenne exponents using the
  369. Elliptic Curve Method of factoring.  Select a few exponents and bounds
  370. to factor from the http://www.mersenne.org/ecm.htm web page.
  371. Note:  You do not reserve exponents to work on, several people can
  372. do ECM factoring on the same exponent.  The program uses a random
  373. number generator to select elliptic curves to test.  You must email
  374. results to me at woltman@magicnet.net - primenet does not support ECM
  375. factoring.  You can also edit the worktodo.ini file directly.  For example:
  376.     ECM=751,3000000,0,100,0,0
  377. The first value is the exponent.  The second value is bound #1.  The
  378. third value is bound #2 - leave it as zero.  The fourth value is the
  379. number of curves to test.  The fifth value is the number of curves completed. 
  380. The sixth value is the specific curve to test - it is only used in
  381. debugging.
  382.  
  383. The Priority menu is used to adjust the priority mprime runs at.
  384. You should not need to change this.  You might raise the priority
  385. if you (or your coworker) just cannot live without your screen
  386. saver (bad idea), or if you are running some ill-behaved program
  387. that is using CPU cycles for no good reason.
  388.  
  389. The Manual Communication menu choice should only be used if the
  390. automatic detection of an Internet connection is not working for you.
  391. Using this option means you have to remember to communicate with the
  392. server every week or two (by using this same menu choice).
  393.  
  394. The Quit GIMPS menu choice is used when you no longer want this computer
  395. to work on the GIMPS project.  You may rejoin at a later date.
  396. If you are a PrimeNet user your unfinshed work will be returned to the
  397. server.  If you are a manual user, you need to send me email containing
  398. your results.txt file and a note saying you are quitting.
  399.  
  400.  
  401. OPTIONS MENU
  402. ------------
  403.  
  404. The CPU menu choice lets you tell the program what kind of CPU you
  405. have.  The program will normally figure this information out for you.
  406. This information is used to give accurate time estimates in the
  407. Test/Status menu choice.  It is also used, to choose between integer
  408. based factoring (Cyrix and 486) and floating point based factoring
  409. (Pentium and Pentium Pro).  No matter what you choose, the program
  410. uses the same code to run the Lucas-Lehmer primality test.  If you have
  411. an AMD K5 or Cyrix M2 chip, choose Cyrix 6x86.
  412.  
  413. The Preferences menu choice lets you control how often a line is
  414. written to the main window.  Also how often a line is written to
  415. the results file.  It also lets you change how often
  416. intermediate files (to guard against power failure an crashes)
  417. are created.  You can control how often the program checks to
  418. see if you are connected to the Internet.  The program polls
  419. whenever it has new data to send to or work to get from the PrimeNet
  420. server.  If you are low on disk space, you can select one intermediate 
  421. file instead of two.  However, if you crash in the middle of writing
  422. the one intermediate file, you may have to restart an exponent from
  423. scratch.  You can also tell the program to be quiet, rather than 
  424. beeping like crazy, if a new Mersenne prime is found.
  425.  
  426. The Self Test choice lets you run a sixteen-hour self test.  Passing the
  427. self-test does not guarantee that you will not run into any hardware
  428. problems later on, but it does give you some confidence that the program
  429. is working properly.
  430.  
  431. The Torture Test choice will run a continuous self test.  This is great
  432. for testing machines for hardware problems.
  433.  
  434.  
  435. POSSIBLE HARDWARE FAILURE
  436. -------------------------
  437.  
  438. If the message, "Possible hardware failure, consult the readme file.",
  439. appears in the results file, then mprime's error-checking has
  440. detected a problem.  Mprime will continue from the last save file.
  441. If you do not get the message, "Disregard last error...", then the
  442. problem is not reproducible - a definite sign of hardware problems.
  443.  
  444. How can this be when none of your other programs have problems?  The answer
  445. is that mprime stresses your machine more than any other program you
  446. run.  The operating system usually shuts down the floating-point unit
  447. when no programs are using it.  Mprime continuously uses the FPU, consuming
  448. more electricity and generating more heat.  If the CPU is not properly cooled,
  449. errors can occur.  Mprime also constantly accesses main memory - up to
  450. 60MB per second.  This constant activity will detect memory problems that
  451. other programs do not.  This is why Cray Research has used a program similar
  452. to this one as part of its supercomputer diagnostics package for over a decade.
  453.  
  454. Could it be a software problem?  If the error is ILLEGAL SUMOUT, then
  455. there is a good chance that this is a software problem.  A device driver
  456. or VxD may not be saving and restoring CPU state correctly.  The good news
  457. is that mprime recovers very well from ILLEGAL SUMOUT errors.
  458. Try seeing if the problem occurs only when a specific device is active
  459. or a specific program is running.
  460.  
  461. How can you track down the hardware problem?  Unfortunately, this is not
  462. easy.  To see if your CPU is overheating, run mprime for several hours.
  463. Open the box.  Is the CPU too hot to touch?  If so, a heat sink or
  464. CPU fan should solve the problem.  Memory problems are not as easy to
  465. diagnose.  My only advice is to try swapping memory SIMMs with a coworker's
  466. or friend's machine.  If the errors go away, then you can be confidant
  467. that the original problems were memory related.
  468.  
  469. What can you do if you are unwilling or unable to find the hardware problem?
  470. If you are only getting an error once in a while, then your results are
  471. probably OK.  The error-checking code is not infallible, so your results
  472. will need to be double-checked.  If you are getting several errors during
  473. each primality test, then I would recommend using your machine to factor
  474. Mersenne numbers.
  475.  
  476.  
  477. LUCAS-LEHMER DETAILS
  478. --------------------
  479.  
  480. This program uses the Lucas-Lehmer primality test to see if 2**p-1 is prime.
  481. The Lucas sequence is defined as:
  482.     L[1] = 4
  483.     L[n+1] = (L[n]**2 - 2) mod (2**p - 1)
  484. 2**p-1 is prime if and only if L[p-1] = 0.
  485.  
  486. This program uses a discrete weighted transform (see Mathematics of
  487. Computation, January 1994) to square numbers in the Lucas-Lehmer sequence.
  488.  
  489.  
  490. DISCLAIMER
  491. ----------
  492.  
  493. THIS PROGRAM AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  494. ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  495. THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  496. PARTICULAR PURPOSE.
  497.  
  498.  
  499. THANKS
  500. ------
  501.  
  502. Happy hunting and thanks for joining the search,
  503. George Woltman
  504. woltman@magicnet.net
  505.  
  506.