From Prime-Wiki
Jump to: navigation, search

Does your team get credit when you manually check out work?

Test results checked into PrimeNet using the Manual Test Results Check In form, are recorded for official GIMPS credit, but are not credited for CPU time by PrimeNet. This means the team will get the credit for them on the Gimps Top 100 page but not on the Primenet one.

Error 7: server has run out of exponents to assign!

The server will occationally run out of exponents to assign. It is advisable to maintain about 10 days worth of cache or so.

How did that user get all those low exponents?

My guess is that he added them to worktodo.txt. When he contacted the server for his daily sending of new expected completion dates, the server saw the exponents had no owner (they had probably expired that morning), so it assigned the exponents to him.

Still, this is a poor method of acquiring exponents. Someone could easily have submitted a result, or picked up the expired exponents prior to his daily check-in.

The PrimeNet server releases exponents for distribution at 6 AM UTC. However, an exponent is no longer considered assigned if its time to expiry is negative, so just adding the exponent to worktodo.ini and doing a manual communication, gets the exponent reassigned to you, and resets the expiry time. If you try this on an exponent with a positive expiry time, you will get the Primenet error 11 - already assigned.

How do I move a partially completed exponent?

On partially completed exponents you should never let the prime.spl and data checkpoint files, (p and q123456), files get out of synch. To move the exponent, you will need to move the worktodo.ini (or relevant lines in the worktodo file), the data checkpoint files, results.txt file and the prime.spl, if it exists. Be aware that prime.spl is written to while an exponent is in progress and not just after completion.

The easiest is probably to zip up the whole directory and move that.

How do I release work from a dead computer?

In the case where the box is dead and you do not have a client to do an unreserve from, you could use the manual method. You could also be cynical and just let the exponents expire.

If you can access the disk, then you can follow the procedure for moving a partially completed exponent to another machine.

How do I reserve a large quantity of exponents?

To reserve an unusually large quantity of exponents, add this line to your prime.ini file:


where n is the number to reserve. Then, you must set the cache option to reflect the processing time for your value of n. Restarting the client will make it reserve the desired work. The default maximum for quantity is 20, normally this is never an issue outside of trial factoring. Doing this will also work for any other work type, you must wisely estimate how much cache you really want. For example, one doing LL tests may wish to have a string of nearby exponents, one may wish to fix their work in a certain narrow range for whatever reasons. We know in trial factoring that once in a while one runs into a "lucky" group of exponents, it is then desirable to run groups. Or you may work at Intel and have an experimental P8 to nonet, this would ensure you can fill your cache for a decent period of time.

Please don't do this recklessly, be absolutely sure about committing to a lengthly sojourn. For work reserved casually and then ignored stalls the primenet server system; up to 88 days may be needed before the work expires and then gets put into a "black hole" requiring human intervention on the part of the project staff in order to re-release it back to the pool.

How do I retire from GIMPS?

Open the client up and click on "Advanced". Go down to "Quit GIMPS" and click. Answer "No" to the question and GIMPS will be gone and the exponent unreserved.

How is CPU years calculated for P-1, and LL test?

  • P-1 credit
Before PrimeNet v5, P-1 CPU credit was always 0.001 P90-years, no matter if you found a factor or not.

The current formula, last revised 2009-01-26 [1], is:

GHz_days = timing * ( 1.45 * B1 + 0.079 * (B2 - B1) ) / 86400.0

where timing is derived from a lookup table [2] of FFT sizes and run times as calculated on the baseline 2.0 GHz Core2 Duo machine that set the current GHz-days credit standards.

  • Lucas-Lehmer credit

The current formula for L-L credit is:

GHz_days = timing * $exponent / 86400.0

where timing is derived from a lookup table [3] of FFT sizes and run times as calculated on the baseline 2.0 GHz Core2 Duo machine that set the current GHz-days credit standards (same timing lookup table as for P-1 credit, above).

Prior to PrimeNet v5, credit was calculated as follows:

P times X(P) times 5.5
------------------------------ = CPU year credit
60 times 60 times 24 times 365


P = mersenne prime exponent = 33,306,661
X(P) = PII400 speed/sec by FFT size - on GIMPS Status page = 1.113
5.5 = PII400 to P90 conversion factor
60 = seconds/min
60 = min
24 = hr/day

365 = day/yr

CPU year credit = 6.465 P90-years

How much credit do we get for factoring assignments?

The formula is long forgotten. It should be

[math]constant*(2^{how far factored} - 2^{how far it had been factored})/exponent[/math]

how_far_factored is 66 when you get "no factor to [math]2^{66}[/math]" message. Note the above formula gives you twice as much credit for factoring to [math]2^{66}[/math] instead of [math]2^{65}[/math]. The constant is different for how_far_factored of 62 and below, 63 to 64, and 65 and above.

The values are:

C1 = 5.00E-17
C2 = 2.1725E-14
C3 = 1.631E-14

Some things to note: Factoring credit is extremely complicated, as the values given for a factor found do not correlate at all with the values given by completing an exponent to an equal bit depth. Then we have the credit given for trial factoring during LL testing (if required), which seems to be arbitrarily fixed. Then we have the credit given for P-1 factoring, which again has been arbitrarily fixed and corresponds to having trial factored to a bit depth increment listed as 0.5 + whatever the last trial factoring stage finished at.

The value for C1 was chosen arbitrarily. This is because the reported credit is cut off at a number of significant digits which lies in the range of the actual value for that bit range. Therefore, solving the system of equations became hellish, about half the combinations attempted resulted in erroneous negative values (and had to be discarded) and the remaining half ranged from 1.0E-17 to 1.0E-16. Anyways trial factoring from [math]2^{58}[/math] to [math]2^{62}[/math] yields very little credit.

Remember that the term [math]2^{final} - 2^{initial}[/math] has a big influence on the value of the constant.

Note: the current PrimeNet formulae for calculating credit (Lucas-Lehmer, trial factoring, P-1 factoring, ECM factoring) can be found in

How to change work type from primality testing to factoring?

Stop the client (the new work will not be started until you restart the client).

Edit the worktodo.txt - to change the order of exponents being worked on. This is safe to do.

Adding the exponent to be factored to the first line in the file.

After the factoring is completed the LL will pick up from the last save file which will be created when you stopped the client. If you are not confident copy the entire directory, so you have a back up. Should do that anyway really! Any problem and the most you lose is a few hours/days factoring...

By copying over the save files and putting the appropriate line in the worktodo.ini you can move work around fairly freely. Only confusion arises is if you send the work results back from a different computer ID from the one it was assigned to. And there are ways round that as well. A simple switching of work order will not cause problems or time lost apart from the short process of editing the ini. Remember, a backup is always good.

How to move an in-progress exponent between two computers?

This is for work in progress only, and of no use for completed work.

  • Check if the clients have a prime.spl file, this implies unsent communications for PrimeNet, do a manual communication to clear these if they exist.
  • Stop clients
  • Cut and paste the worktodo line for the exponent you are moving into the destination worktodo
  • Look for Pxxxxxxx and Qxxxxxxx files in the source client where the last 6 digits of xxxxxx match the last six digits of the exponent you are moving, move these files over to the destination as well.
  • Start the destination client and do a manual communication with send new completion dates.
  • Do the same for the source client.

NOTE: if your destination client has too much work assigned already the exponent will be released and LOST rather than added. To get around this you can use the maxexponents setting in the undoc file. Also I suggest that you put your in-progress exponents as high up the worktodo as possible so if work does get released it is non-started work.

I found a factor but the program is still continuing. Why?

The client, prior to version 20, looks for an even smaller factor. The only reason to do this is to make sure the database contains the smallest factor of each Mersenne number. This will let a future mathematician do some research and analysis on the distribution of factors. The fact that factors are not tested in order has to do with an obscure program optimization.

Before getting too excited over the large factor, you should know that P-1 can find 2 (or more) factors multiplied together. This is what happened in this case. For example, if P-1 factoring finds a 66 and 68 bit prime factor it is returned as one 134 bit composite factor. I later use some publicly available ECM factoring software to find the 66 and 68 bit prime factors.

Is credit for factoring 1/10th the credit for primality work?

It used to be, prior to PrimeNet v5.

Now all work is credited equally - a given amount of CPU time should equal the same amount of credit no matter what type of work is performed. However, the formulas for calculating this credit are based on the performance of a 2.0 GHz Intel Core2 Duo CPU, and different CPU architectures perform differently on various work types, so some CPUs are better suited to some types of work than others (more GHz-days of work done in a given time). The throughput calculator can show what assignment types are most efficient on a given CPU architecture.

Is it possible to lose credit for work done?

George Woltman publishes a second set of stats, located on his server, for people who do GIMPS work, but for various reasons do not go through PrimeNet.

In those stats, if an exponent later gets reassigned, or if a factor is found, credit is reversed for the originating party and given to the subsequent party. The philosophy here is that the true advancement of science is the one awarded credit, and results that are imprecise are not - whether it is due to a machine glitch, gambling by intentionally skipping factoring while LL testing, or risking a 99% QA'd beta.

Using nonetting will a manual connect send in all results?

George Woltman:

"First off, I'm not an expert in nonetting. It's a pain! If you don't "report in" after 28 days, then you are late. The server then gives you another 60 days before your reservations expire. So you really have 88 days after your reservation to report in.

Second, there is a limit on the number of exponents you can reserve. You'll need to read undoc.txt for how to override this limit to get 28 days of factoring work.

The auto-detect of a lan-connection should work. You'd have to leave it connected for an hour (that's what the default network retry time). Setting network retry time lower could negatively impact performance when the lan is not connected.

It should be possible to copy critical files to a floppy, take the floppy to the networked machine, connect to the server, take the floppy back to the client and copy the updated files. At a minimum, such files would include prime.spl, prime.ini, local.ini, and worktodo.ini. You'd need to delete prime.spl and copy the new worktodo.ini when done.

You can copy results.txt and prime.log back and forth too, but it isn't required."

What does "Assignment does not belong to us" mean?

PrimeNet has a different account ID associated with that exponent. In most cases, you should ignore this message because PrimeNet will accept the test result from your computer and credit your account the work anyway.

There are five possible reasons for this message.

First check if the test program has acquired a new PrimeNet account ID for you in the User Information settings. The next thing to check is if the exponent was originally from your manual test range, or assigned by PrimeNet. PrimeNet accepts manual test range exponents already being tested by the client when you start using the server, and begins tracking them for you.

  • If your account ID has changed
Simply use the User Information settings to change the account User ID and password back to their original values. These are case-sensitive, and spaces are changed to underscore characters, so check spelling carefully. Do not edit the prime.ini file to change this! Allow the program to update the PrimeNet server, then check your account.
Changing account IDs when there is problem with your account is an automatic failsafe feature that guarantees your results will always get to the server, where they can then be safely merged back into your primary account. If you have any difficulty with the procedure above, please email
  • If the exponent is from your manual test range:
The exponent may have already been tested. PrimeNet will reject updates on tested exponents, and indicate it is not (and should not be) assigned to you. If you believe this is incorrect, contact George Woltman, but otherwise you should discontinue work on it it and delete it from your worktodo.ini file.
  • If the exponent was assigned by PrimeNet:
A manual action on Prime95's configuration files has not been performed correctly. The prime.ini file, which contains your account information, was not copied with the pNNNNNNN, qNNNNNNN and worktodo.ini files, or the account ID was changed (perhaps upper/lower case was changed) for the exponent being tested, by manually editing prime.ini.

Solution: If you want to continue testing the original exponents you will need to get the account report for the old account. For each exponent in the report assigned to this machine, add an entry to worktodo.ini for each assigned exponent: for example, "Test=1234567,60", or "Factor=1234567,55", etc., where you subtitute the values of the exponents and the no-factors-thru-bits (omit the quotes, too). After this, edit prime.ini and set your old account ID and password. Start Prime95 and in the User Information put your new account back in again. Prime95 will automatically tell PrimeNet to merge your old account into the new account.

  • You've changed your password in Prime95.
Prime95 ver. 16 is not equipped to remotely change your password once your account is created, however you can e-mail primenet@entropia.comand have it changed for you. Once it has been changed, edit your prime.ini file to set the new password before restarting Prime95.
  • The exponent has expired and is now assigned to another account.
No action is required, however to know for sure it has expired you should also check the account report for your account.

What happens when a triple-check agrees with a double-check?

The PrimeNet stats gives credit for any work turned in to the server whether it turns out to be valid or not - so no problem here. George Woltman's other stats page gives credit for work done prior to the PrimeNet server and work turned in outside of primenet (by email or the manual forms), but you lose credit if work later turns out to be incorrect.

What happens when I change the computer id?

When you change the computer id, it updates the server but does not update the computer id on the exponents you have assigned. This does not happen until it does a update of expected completion dates for the exponents.

You should can force the update by doing a manual communication from the advanced menu otherwise, you could be waiting until the exponent completes or or until what ever period you have set for sending in new completion dates is up.

Refer to the readme file on enabling the advanced menu and the associated warnings.

What are the poachers doing?

What the poachers are doing is putting the exponent in their worktodo.ini and work on it offline with a fast machine. Once it is complete, they connect and transmit the results. Primenet will accept completed exponents no matter who they are assigned to and give credit to the submitter. If its a first time LL, then the person who got poached will get credit for a doublecheck when he completes it (ignoring the primenet error about already completed), but if the exponent is already a doublecheck, the poached one will get nothing.

What to do with exponent that are close to expire?

If you want to retain nearly expired exponents, then add them to the worktodo file for another computer (with enough cache to take them), and do a manual communication. The exponent should then be transferred to the new computer and no longer assigned to the expiring computer. It will also get a new expiery date.

A team can transfer exponents between computers and around the team quite easily. Simply stop the client remove an exponent from one worktodo, send to someone else to add to his or hers worktodo, do a manual communication with send new completion dates on each computer and you are up and running.

This opens some possibilities for exponent deployment:

  • Moving LL and DoublChecking exponents around so the smallest are running on the slowest computers and the biggest are on the fastest.
  • One could do the factoring for a 33M exponent on an athlon and the LL on a P4
  • Move a computer from factoring to LL and visa-versa by re-distributing the exponents.
  • Get smaller exponents when they are available and saving them until someone needs them
  • A team could implement an exponent orphanage. to ensure exponents due to expire get collected and to handle requests for adoption similar to George's emails reservation system. For an example, have a look at Team_Prime_Ribs' Orphanage.

Why does credit for factoring vary?

When a factor is found you get credit only to the depth it was factored when a divisor appeared. So factored exponent credit can vary from 0.001 to 0.067.

Why doesn't an exponent appear on the completed list?

This indicates no factor was found. If a Mersenne number is factored, it is eliminated as a candidate prime and goes onto the cleared exponents list. If not, it must still be Lucas-Lehmer tested, or subject to further trial-factoring.

In any case, the CPU time spent trial-factoring has been credited to your account.

Why doesn't manual results show in my PrimeNet report?

When GIMPS clients switches to PrimeNet, any results to date from the text file are sent as-is, without further interaction, directly to the server's collection log. This log is periodically retrieved by George Woltman. George always credits all results, but the Internet PrimeNet Server only credits work completed after your account is started and GIMPS clients begins working with it.

See also

External links