View Single Post
Old 2018-05-24, 16:41   #4
kriesel's Avatar
Mar 2017
US midwest

47×107 Posts
Default Disclaimer


The tables and other information I've been putting together (or may add or modify in the future) are not a personal endorsement of everything or anything in it. Don't sue or curse me or GIMPS or its officers if something undesired occurs after loading any of the mentioned software on a system, or information offered in good faith turns out to be incorrect. I'm just sharing information I've managed to gather after spending numerous hours reading through forum threads and by other means. Make your own informed decision what to use or not use. As with all downloaded software, the end user assumes any risk. There are no warranties express or implied that I'm aware of.

Draft criteria for inclusion in Mersenne prime hunting software package table, client management table, etc.:

Benign function: It actually does what the author claims it does and accomplishes the factoring or testing approach (within normal bounds, including bugs and documentation errors' effects) and it does not do things that are objectionable (such as interfere with other programs, destabilize or damage system, make console unresponsive or hang the system, crack passwords, transmit user files, mine bitcoin, send spam, install or contain data extortion virus or other malware, search for data useful for blackmail, join a botnet, participate in DDOS, LAN-scan, etc). It can handle the ranges of exponents of interest currently (GIMPS wavefront). It's preferred it also currently supports ranges of exponents extending at least a year into the future at current rates of progress. That allows time for testing for correct function in advance before the wavefront arrives there.

Speed: fast enough relative to any available alternatives that could consume the same computing resources, that running the program does not constitute a large waste of resources. Faster than existing alternatives on similar hardware at high accuracy and reliability is desired.

Accuracy: nothing's perfect, and lengthy primality test, probable-prime test, or factoring operations are exceptionally unforgiving of error, so high effort to ensure accuracy matters greatly. Software should implement self test to verify itself and the hardware it's running on, and implement various on-the-fly error checking and verification such as round-off error checking, detection of illegal output values, status output including interim 64-bit residues, etc.

Stable: Can run for weeks or longer without attention. Stability issues have known effective workarounds. (An example is the NVIDIA driver restart issue and the combination of checkpointing, DEVCON.exe, and batch file wrappers.)

Robust: Saves interim results periodically and can resume from saved interim results in case of later nonrecoverable error. Includes input parameter checking, error handling.

Validation: Outputs should be available in plain text to make easy validation of correct operation. Documentation of data formats of interim save files for comparison of full length interim residues or other computations in progress to results of other programs and to theoretically correct values is a plus.

Trusted: Open Source is the best bet here and highly recommended. Authors willing to put their own full names on it help create confidence. Aliases or closed source or concealed documentation or encryption of code or encryption of communication can have the opposite effect.

Availability: It is available on a known server for free download. License restrictions are minimal and publicly available before download and installation are completed, for an informed decision at the outset or very early. Ideally the documentation can be downloaded separately from the program or installer.

Work management: Optionally provides for connection with work assignment servers. Optional scripting to distribute work or report results automatically. Provision for queuing up work locally is required, enabling manual operation and operation throughout network access interruptions. Provides for resuming or launching subsequent exponent tasks upon completion of one in progress.

Logging: logging to file of results is required. lLogging of program console activity is desired but not a requirement. For software lacking builtin screen output logging, end user use of tee or redirection from a terminal window or command processor window are suggested.

Platform requirements: runs on hardware and operating system(s) which are numerous, and resource requirements are not exceptionally demanding or exotic.

Support: there's a user community, a forum, source code available online, executable(s) easily available, patches easily available, currently maintained software and documentation, clear accurate and ample documentation, online documentation, a wiki, or a responsive capable involved friendly developer. More is better. All the preceding is best.

Tuning: program should implement sensible defaults, and provide for user modification of tune. Some people enjoy tuning, some want set and forget. New hardware not designed when the software was written may benefit from re-tuning.

User interface: command line options and ini file are the minimum. An interactive keyboard mode is helpful for tuning and debugging. A GUI is a plus.

Other: what am I omitting that is of importance to the current or potential users?

Top of reference tree:

Last fiddled with by kriesel on 2019-11-15 at 22:25 Reason: typos, updates
kriesel is offline