mersenneforum.org  

Go Back   mersenneforum.org > Great Internet Mersenne Prime Search > Data > mersenne.ca

Reply
 
Thread Tools
Old 2021-12-30, 03:18   #760
Uncwilly
6809 > 6502
 
Uncwilly's Avatar
 
"""""""""""""""""""
Aug 2003
101×103 Posts

22×3×877 Posts
Default

And there are things like the table comparing the Prime95 factoring levels to GPU72 levels. And some other assorted items that I can't think of at the moment.
Uncwilly is online now   Reply With Quote
Old 2021-12-30, 04:01   #761
James Heinrich
 
James Heinrich's Avatar
 
"James Heinrich"
May 2004
ex-Northern Ontario

3×1,237 Posts
Default

Quote:
Originally Posted by Viliam Furik View Post
TJAOI report is not there.
Thanks, added.

Quote:
Originally Posted by Uncwilly View Post
And there are things like the table comparing the Prime95 factoring levels to GPU72 levels.
I'm not sure I remember what/where this is?

Let me know if you think of anything else missing from the list (I haven't yet had a chance to review it myself).

Last fiddled with by James Heinrich on 2021-12-30 at 04:02
James Heinrich is offline   Reply With Quote
Old 2021-12-30, 04:32   #762
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

3·11·239 Posts
Default

Quote:
Originally Posted by James Heinrich View Post
I'm not sure I understand what you're trying to do with that lookup table in your code. But I don't speak Python well (or at all).

This is what I have in PHP:
Code:
function ECMeffortExpected() {
	return array(
		20 => array(    11000,    100),
		25 => array(    50000,    280),
		30 => array(   250000,    640),
		35 => array(  1000000,   1580),
		40 => array(  3000000,   4700),
		45 => array( 11000000,   9700),
		50 => array( 44000000,  17100),
		55 => array(110000000,  46500),
		60 => array(260000000, 112000),
		65 => array(800000000, 360000),
	);
}
function ECMeffort($curves) {
	// https://www.mersenneforum.org/showpost.php?p=573887&postcount=569
	// https://github.com/sethtroisi/misc-scripts/blob/main/mersenne/ecm_progress/test.py
	// Try to convert list of <B1, B2, number_of_curves> to t40, t45, t50 progress
	// original code by SethTro <https://www.mersenneforum.org/member.php?u=15870> 2021-03-16
	// translated to PHP by James Heinrich <james@mersenne.ca> 2021-03-17
	$completed = array();
	foreach (ECMeffortExpected() as $digits => $B1curvesNeeded) {
		$complete = 0;
		$curvecount = 0;
		list($min_B1, $curves_needed) = $B1curvesNeeded;
		foreach ($curves as $curvedata) {
			list($B1, $B2, $count) = $curvedata;
			if (($B1 >= $min_B1) && ($B2 >= (20 * $min_B1))) {
				$complete += ($count / $curves_needed);
				$curvecount += $count;
			}
		}
		if ($complete > 0.001) {
			$completed[$digits] = array($complete, $curvecount);
		}
	}
	return $completed;
}

function ECMprobabilityMissedSmallerFactor($curves_complete, $needed_curves) {
	// https://www.mersenneforum.org/showpost.php?p=573952&postcount=574
	// Probability of missed (smaller) factor is
	// (1 - 1/needed_curves) ^ curves_complete
	// which can be transformed to
	// math.exp(curve_count * math.log(1 - 1/curve_count))
	// or approximated by
	// (1/e)^(complete)
	//return exp($curves_complete * log(1 - (1 / $needed_curves)));
	return pow(1 - (1 / $needed_curves), $curves_complete);
}
If you could, please explain in more detail what your new code is doing, and what the bits of the lookup table are for. If you're real ambitious, feel free to rewrite your code in PHP so I can just plug it in.
I'm not happy with the above. My reading of this code is that B2 is practically ignored. Clearly B2=150*B1 is worth more than B2=70*B1. Someday we may well see B2=thousands*B1. IIUC the replacement PHP code has more B1/B2 data points but there are still lots of gaps leading to accumulated error.

What is needed is a way to convert odd B1/B2 combos into an equivalent number of "standard" curves.
This is what the PrimeNet server does to translate a curve where B2 != 100*B1. This came from Alex Kruppa who knows more about ECM than just about anyone.

Code:
// Our total_ECM_effort tracks curves assuming a B2 value of 100 * B1.
// If B2 is not 100 * B1, then adjust the reported B1 value up or down
// to reflect the increased or decreased chance of finding a factor.
//
// From Alex Kruppa, master of all things ECM, the following formula
// compensates for using B2 values that are not 100 * B1.
// 0.11 + 0.89 * (log_10(B2 / B1) / 2) ^ 1.5

function normalized_B1( $B1, $B2 )
{
	if ($B2 == 100 * $B1) return $B1;
	return $B1 * (0.11 + 0.89 * pow (log10 ($B2 / $B1) * 0.5, 1.5));
}
Alex did indicate this is an approximation... not sure over what range of B2/B1 that it is decently accurate.
Prime95 is offline   Reply With Quote
Old 2021-12-30, 04:40   #763
James Heinrich
 
James Heinrich's Avatar
 
"James Heinrich"
May 2004
ex-Northern Ontario

3×1,237 Posts
Default

Quote:
Originally Posted by Prime95 View Post
I'm not happy with the above....
What is needed is a way to convert odd B1/B2 combos into an equivalent number of "standard" curves.
I'm not sure what/how you suggest I integrate Alex's function?
James Heinrich is offline   Reply With Quote
Old 2021-12-30, 06:00   #764
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

1ECF16 Posts
Default

Quote:
Originally Posted by James Heinrich View Post
I'm not sure what/how you suggest I integrate Alex's function?
Something along the lines of replacing

Code:
			if (($B1 >= $min_B1) && ($B2 >= (20 * $min_B1))) {
				$complete += ($count / $curves_needed);
				$curvecount += $count;
			}
with

Code:
        // Normalize curvedata to B2 = B1 * 100
	$count *= $B1 * (0.11 + 0.89 * pow (log10 ($B2 / $B1) * 0.5, 1.5));
        // Adjust curve count if B1 > min_B1
        $count *=  $B1/$min_B1;
        // Add curve data to totals
	$complete += ($count / $curves_needed);
	$curvecount += $count;
I do not recommend implementing that willy-nilly. I think it deserves some further study. For example, if you run the suggested change with the GMP-ECM recommended curve counts for large B2/B1 ratios, does it report ~100% complete.
Prime95 is offline   Reply With Quote
Old 2021-12-30, 08:45   #765
SethTro
 
SethTro's Avatar
 
"Seth"
Apr 2019

24·33 Posts
Default

Quote:
Originally Posted by Prime95 View Post
I'm not happy with the above. My reading of this code is that B2 is practically ignored. Clearly B2=150*B1 is worth more than B2=70*B1. Someday we may well see B2=thousands*B1. IIUC the replacement PHP code has more B1/B2 data points but there are still lots of gaps leading to accumulated error.

What is needed is a way to convert odd B1/B2 combos into an equivalent number of "standard" curves.
This is what the PrimeNet server does to translate a curve where B2 != 100*B1. This came from Alex Kruppa who knows more about ECM than just about anyone.

Alex did indicate this is an approximation... not sure over what range of B2/B1 that it is decently accurate.
Thanks for suggesting the improvement!

You understand version two of the PHP code correctly in that it finds the largest curve with precomputed (B1, B2) less than the curves' (B1, B2) from a set of ~100 B1/B2 pairs with precomputed ECM effort.

At the time the vast majority of curves were done with only this small set of bounds (see #594)

A short term fix could be to augment more pre-computed pairs (with B2=100*B1, 200*B1, 400*B1, ...) the instructions are in #595

Alternatively I can compute a bunch of ECM-effort from (B1,B2) and compare with Alex's heuristic.

Last fiddled with by SethTro on 2021-12-30 at 09:01 Reason: Fixed link
SethTro is offline   Reply With Quote
Old 2021-12-30, 09:54   #766
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

173178 Posts
Default

Quote:
Originally Posted by SethTro View Post
Alternatively I can compute a bunch of ECM-effort from (B1,B2) and compare with Alex's heuristic.
Please do. If the heuristic is inaccurate, I'll need to change the server's PHP code.
Prime95 is offline   Reply With Quote
Old 2021-12-30, 09:58   #767
SethTro
 
SethTro's Avatar
 
"Seth"
Apr 2019

24×33 Posts
Default

I coded up Alex's normalize_B1 and it's not great

https://colab.research.google.com/dr...Fq5tmL_k02wMuA

First attachment shows number of curves needed at various B1/B2 with B2 = {1,3,10,30,100,300,1000} * B1

Second attachment shows the predicted number of curves using B1 = normalized_B1(B1, B2), B2 = 100 * B1

Third attachment removes the B2=B1 points which have very high error

Fourth attachment I bounded the error and added a green dot if abs(error) < 10%

---

You can clone my colab (please share your version if you do) and play with this if you want.

It's possible the heuristic can be easily tweaked by adding a term based on B1
Attached Thumbnails
Click image for larger version

Name:	Screenshot from 2021-12-30 01-55-03.png
Views:	36
Size:	75.1 KB
ID:	26315   Click image for larger version

Name:	Screenshot from 2021-12-30 01-55-14.png
Views:	32
Size:	62.9 KB
ID:	26316   Click image for larger version

Name:	Screenshot from 2021-12-30 01-55-19.png
Views:	30
Size:	64.6 KB
ID:	26317   Click image for larger version

Name:	Screenshot from 2021-12-30 02-22-19.png
Views:	35
Size:	64.5 KB
ID:	26318  

Last fiddled with by SethTro on 2021-12-30 at 10:43
SethTro is offline   Reply With Quote
Old 2021-12-30, 11:50   #768
Zhangrc
 
"University student"
May 2021
Beijing, China

2×53 Posts
Default

Quote:
Originally Posted by James Heinrich View Post
Please elaborate with settings used, screenshot, etc to help me track down what you're seeing.
That's easy to reproduce:
https://www.mersenne.ca/prob.php?exp...bits=77&prob=4

Last fiddled with by Zhangrc on 2021-12-30 at 11:50
Zhangrc is offline   Reply With Quote
Old 2021-12-30, 14:33   #769
James Heinrich
 
James Heinrich's Avatar
 
"James Heinrich"
May 2004
ex-Northern Ontario

3·1,237 Posts
Default

Quote:
Originally Posted by Zhangrc View Post
P-1 probability calculator on mersenne.ca seems to have been broken.
It now shows only 1x and 5x bounds.
Thanks, fixed.
James Heinrich is offline   Reply With Quote
Old 2021-12-31, 03:09   #770
alpertron
 
alpertron's Avatar
 
Aug 2002
Buenos Aires, Argentina

5A616 Posts
Default

I've found a glitch in the GIMPS process visualization.

If you sum the numbers in the column <71 of the page https://www.mersenne.ca/status/tf/0/0/0/100000, the result does not match the number in the total row.

The same problem occurs on https://www.mersenne.ca/status/tf/0/0/1/400000

Last fiddled with by alpertron on 2021-12-31 at 03:10
alpertron is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Small inconsistencies between mersenne.org and mersenne.ca factor databases GP2 mersenne.ca 44 2016-06-19 19:29
mersenne.ca (ex mersenne-aries.sili.net) LaurV mersenne.ca 8 2013-11-25 21:01
Gaussian-Mersenne & Eisenstein-Mersenne primes siegert81 Math 2 2011-09-19 17:36
Mersenne Wiki: Improving the mersenne primes web site by FOSS methods optim PrimeNet 13 2004-07-09 13:51

All times are UTC. The time now is 16:29.


Sat May 21 16:29:46 UTC 2022 up 37 days, 14:31, 0 users, load averages: 1.43, 1.40, 1.34

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2022, 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.

≠ ± ∓ ÷ × · − √ ‰ ⊗ ⊕ ⊖ ⊘ ⊙ ≤ ≥ ≦ ≧ ≨ ≩ ≺ ≻ ≼ ≽ ⊏ ⊐ ⊑ ⊒ ² ³ °
∠ ∟ ° ≅ ~ ‖ ⟂ ⫛
≡ ≜ ≈ ∝ ∞ ≪ ≫ ⌊⌋ ⌈⌉ ∘ ∏ ∐ ∑ ∧ ∨ ∩ ∪ ⨀ ⊕ ⊗ 𝖕 𝖖 𝖗 ⊲ ⊳
∅ ∖ ∁ ↦ ↣ ∩ ∪ ⊆ ⊂ ⊄ ⊊ ⊇ ⊃ ⊅ ⊋ ⊖ ∈ ∉ ∋ ∌ ℕ ℤ ℚ ℝ ℂ ℵ ℶ ℷ ℸ 𝓟
¬ ∨ ∧ ⊕ → ← ⇒ ⇐ ⇔ ∀ ∃ ∄ ∴ ∵ ⊤ ⊥ ⊢ ⊨ ⫤ ⊣ … ⋯ ⋮ ⋰ ⋱
∫ ∬ ∭ ∮ ∯ ∰ ∇ ∆ δ ∂ ℱ ℒ ℓ
𝛢𝛼 𝛣𝛽 𝛤𝛾 𝛥𝛿 𝛦𝜀𝜖 𝛧𝜁 𝛨𝜂 𝛩𝜃𝜗 𝛪𝜄 𝛫𝜅 𝛬𝜆 𝛭𝜇 𝛮𝜈 𝛯𝜉 𝛰𝜊 𝛱𝜋 𝛲𝜌 𝛴𝜎𝜍 𝛵𝜏 𝛶𝜐 𝛷𝜙𝜑 𝛸𝜒 𝛹𝜓 𝛺𝜔