mersenneforum.org  

Go Back   mersenneforum.org > Great Internet Mersenne Prime Search > PrimeNet

Reply
 
Thread Tools
Old 2004-11-25, 12:43   #1
leifbk
 
leifbk's Avatar
 
May 2004
Oslo, Norway

1708 Posts
Default Number of P90 years per exponent

What is the algorithm used by the reports for determining the number of P90 years per exponent?

I guess there must be some documentation on this somewhere, but so far I've been unable to find it.

regards, Leif.
leifbk is offline   Reply With Quote
Old 2004-11-25, 14:18   #2
bayanne
 
bayanne's Avatar
 
"Tony Gott"
Aug 2002
Yell, Shetland, UK

14116 Posts
Default

Not sure on the maths but you can find P90 value at Rob's Page
bayanne is offline   Reply With Quote
Old 2004-11-25, 22:34   #3
markr
 
markr's Avatar
 
"Mark"
Feb 2003
Sydney

3×191 Posts
Default

Try this thread. The GIMPS status page has the speeds that are assumed for each fft size.
markr is offline   Reply With Quote
Old 2004-11-28, 09:31   #4
leifbk
 
leifbk's Avatar
 
May 2004
Oslo, Norway

23·3·5 Posts
Default

Quote:
Originally Posted by markr
Try this thread. The GIMPS status page has the speeds that are assumed for each fft size.
Thank you, that was an interesting thread.

I've found a similar algorithm simply by viewing the source of the GIMPS Benchmark page. I thought that there maybe existed a more elegant formula, but this is probably the real thing after all

regards, Leif.
leifbk is offline   Reply With Quote
Old 2004-11-28, 12:10   #5
leifbk
 
leifbk's Avatar
 
May 2004
Oslo, Norway

23×3×5 Posts
Default

FWIW, here's a full, working, Python implementation of robreid's code:

Code:
def calc_p90(exp):
""" calculate P90 value for LL and DC, input is exponent,
    output is P90 cpu yrs.
    By robreid, his explanation is as follows
    (from http://www.mersenneforum.org/showthread.php?t=2731):
    The exponent ranges are based on the table on the Mersenne
    Status page (http://www.mersenne.org/status.htm)
    The multiplier for each range is comes from the PII-400 Speed
    column on the same table.
    So its :-
    Exponent (same as the number of iterations needed to complete
    the LL) multiplied by the number of PII-400 seconds to complete
    an iteration at the fft size of the exponent multiplied by 5.5
    (to convert to P90 seconds) divided by 31536000
    (to convert to P90 years)

    Converted to Python by leifbk 2004"""

    exp_p90 = 0.0
    if (exp <= 4598000): exp_p90 = exp * 0.119
    elif (exp >= 4598001 and exp <= 5255000): exp_p90 = exp * 0.132
    elif (exp >= 5255001 and exp <= 6520000): exp_p90 = exp * 0.173
    elif (exp >= 6520001 and exp <= 7760000): exp_p90 = exp * 0.211
    elif (exp >= 7760001 and exp <= 9040000): exp_p90 = exp * 0.252
    elif (exp >= 9040001 and exp <= 10330000): exp_p90 = exp * 0.281
    elif (exp >= 10330001 and exp <= 12830000): exp_p90 = exp * 0.372
    elif (exp >= 12830001 and exp <= 15300000): exp_p90 = exp * 0.453
    elif (exp >= 15300001 and exp <= 17850000): exp_p90 = exp * 0.536
    elif (exp >= 17850001 and exp <= 20400000): exp_p90 = exp * 0.6
    elif (exp >= 20400001 and exp <= 25350000): exp_p90 = exp * 0.776
    elif (exp >= 25350001 and exp <= 30150000): exp_p90 = exp * 0.934
    elif (exp >= 30150001 and exp <= 35100000): exp_p90 = exp * 1.113
    elif (exp >= 35100001 and exp <= 40250000): exp_p90 = exp * 1.226
    elif (exp >= 40250001 and exp <= 50000000): exp_p90 = exp * 1.64
    elif (exp >= 50000001 and exp <= 59400000): exp_p90 = exp * 1.99
    elif (exp >= 59400001 and exp <= 69100000): exp_p90 = exp * 2.38
    elif (exp >= 69100001 and exp <= 79300000): exp_p90 = exp * 2.604
    exp_p90 = exp_p90 * 5.5 / 31536000
    return exp_p90

if __name__ == '__main__':
    from sys import argv
    res = calc_p90(int(argv[1]))
    print '%3.3f' % res
Save this as eg. p90.py, and run with exponent as command-line argument.

I hope that this might be useful to someone

regards, Leif.
leifbk is offline   Reply With Quote
Old 2004-11-29, 10:50   #6
leifbk
 
leifbk's Avatar
 
May 2004
Oslo, Norway

23×3×5 Posts
Default

Here's a shorter and cleaner version:

Code:
#! /usr/bin/env python

def calc_p90(exp):
    """ calculate P90 value for LL and DC, input is exponent,
    output is P90 cpu years.
    see http://www.mersenneforum.org/showthread.php?t=2731 
    for an explanation."""

    exp_p90 = 0.0
    if exp <  4598000: exp_p90 = exp *  0.6545
    if exp >  4598000: exp_p90 = exp *  0.726
    if exp >  5255000: exp_p90 = exp *  0.9515
    if exp >  6520000: exp_p90 = exp *  1.1605
    if exp >  7760000: exp_p90 = exp *  1.386
    if exp >  9040000: exp_p90 = exp *  1.5455
    if exp > 10330000: exp_p90 = exp *  2.046
    if exp > 12830000: exp_p90 = exp *  2.4915
    if exp > 15300000: exp_p90 = exp *  2.948
    if exp > 17850000: exp_p90 = exp *  3.3
    if exp > 20400000: exp_p90 = exp *  4.268
    if exp > 25350000: exp_p90 = exp *  5.137
    if exp > 30150000: exp_p90 = exp *  6.1215
    if exp > 35100000: exp_p90 = exp *  6.743
    if exp > 40250000: exp_p90 = exp *  9.02
    if exp > 50000000: exp_p90 = exp * 10.945
    if exp > 59400000: exp_p90 = exp * 13.09
    if exp > 69100000: exp_p90 = exp * 14.322
    return exp_p90 / 31536000

if __name__ == '__main__':
    from sys import argv
    print '%3.3f' % calc_p90(int(argv[1]))
I've simplified the expressions, and multiplied out each constant factor with 5.5.

Maybe this thread should have been placed in the Programming section, but as I feel that a lot of newbies wonder about this kind of stuff, I felt that this was the right place.

regards, Leif.
leifbk is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Test a Specific Exponent in Prime95. When it is 100% done, does it mean I find a new prime number? king Information & Answers 5 2018-02-21 18:15
http://www.mersenne.ca/exponent/72977 - 'That is a weird number' Syntony mersenne.ca 3 2017-01-27 18:53
PSP: 10 years old! Citrix Prime Sierpinski Project 1 2013-11-08 07:35
Six years ago today… Xyzzy Forum Feedback 4 2008-08-16 16:55
P90 CPU Years and PrimeNet S485122 PrimeNet 9 2006-10-27 06:52

All times are UTC. The time now is 12:42.

Sat Apr 17 12:42:10 UTC 2021 up 9 days, 7:23, 0 users, load averages: 2.65, 2.24, 2.14

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.