mersenneforum.org  

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

Reply
 
Thread Tools
Old 2022-11-05, 17:29   #1
Happy5214
 
Happy5214's Avatar
 
"Alexander"
Nov 2008
The Alamo City

11100110012 Posts
Default PRPNet analog for sieves

Does anyone know of any software that does something with sieves (the prime-searching kind) similar to what PRPNet does for the actual primality testing (i.e. stores the candidates on a server, distributes them, runs the testing program, displays progress, etc.)? If not, is there a market for a system like this, what features would be needed, and how should one approach writing this? My idea for this would be for this to distribute a person's own sieves across their own (heterogeneous) cluster, not necessarily a distributed sieve (as with BOINC), though I supposed it could be designed for a small distributed effort if that's desired.
Happy5214 is offline   Reply With Quote
Old 2022-11-05, 19:15   #2
rogue
 
rogue's Avatar
 
"Mark"
Apr 2003
Between here and the

154738 Posts
Default

Quote:
Originally Posted by Happy5214 View Post
Does anyone know of any software that does something with sieves (the prime-searching kind) similar to what PRPNet does for the actual primality testing (i.e. stores the candidates on a server, distributes them, runs the testing program, displays progress, etc.)? If not, is there a market for a system like this, what features would be needed, and how should one approach writing this? My idea for this would be for this to distribute a person's own sieves across their own (heterogeneous) cluster, not necessarily a distributed sieve (as with BOINC), though I supposed it could be designed for a small distributed effort if that's desired.
It's funny how I asked a question of whether or not this would have value over at PrimeGrid. They don't care much about anything that they cannot do with BOINC.

I have thought about the same question you are asking. AFAIK, there is nothing anyone can run on their home networks to do automate sieving.

I don't think it would be overly difficult to code. I would probably start with PRPNet then add a switch on the server to indicate "sieve mode" or "test mode". The configuration of the client would indicate what to do. So if the client has both sievers and testers configured it would get work based upon the mode of the server. If it has only one mode configured and not the other then it can only do that kind of work. This means that a client on ARM could do sieving and one on Intel could do testing for the same server.

To further this, the server would have a fixed sieving range that all clients would use, e.g. 1e9, 5e11, 1e14, etc. The client would need to have its own configuration for other command line switches for the sievers.

Thoughts?
rogue is offline   Reply With Quote
Old 2022-11-27, 17:46   #3
Happy5214
 
Happy5214's Avatar
 
"Alexander"
Nov 2008
The Alamo City

3×307 Posts
Default

I didn't know anyone would respond that quickly, so I didn't bother checking this thread until now. Oops.

Quote:
Originally Posted by rogue View Post
I don't think it would be overly difficult to code. I would probably start with PRPNet then add a switch on the server to indicate "sieve mode" or "test mode". The configuration of the client would indicate what to do. So if the client has both sievers and testers configured it would get work based upon the mode of the server. If it has only one mode configured and not the other then it can only do that kind of work. This means that a client on ARM could do sieving and one on Intel could do testing for the same server.

To further this, the server would have a fixed sieving range that all clients would use, e.g. 1e9, 5e11, 1e14, etc. The client would need to have its own configuration for other command line switches for the sievers.
Questions:
  1. So I'd upload the candidates to the server before fully sieving them? (I'd suppose I'd have to seed it to some low level to generate an initial list.)
  2. Can the server only have one mode at a time, or can both modes be enabled for different platforms?
  3. How would the server divide the ranges?
  4. How does it keep track of what's already been done? Is there a sieve depth field on each candidate?
  5. How does the client configure the siever switches? Can that be done in the prpclient.ini, or do you put that in a shell/batch script?
  6. Do we know mtsieve works on ARM yet?

To describe my workflow, I typically sieve to a target time (not depth) based on the average LLR test time in the dataset on my primary testing computer, and most of my PRPNet servers have new data regularly added to them (two of them are actually designated "miscellaneous" small and medium servers, and they're never "completely" filled).
Happy5214 is offline   Reply With Quote
Old 2022-11-28, 00:37   #4
rogue
 
rogue's Avatar
 
"Mark"
Apr 2003
Between here and the

11011001110112 Posts
Default

Quote:
Originally Posted by Happy5214 View Post
Questions:
  1. So I'd upload the candidates to the server before fully sieving them? (I'd suppose I'd have to seed it to some low level to generate an initial list.)
  2. Can the server only have one mode at a time, or can both modes be enabled for different platforms?
  3. How would the server divide the ranges?
  4. How does it keep track of what's already been done? Is there a sieve depth field on each candidate?
  5. How does the client configure the siever switches? Can that be done in the prpclient.ini, or do you put that in a shell/batch script?
  6. Do we know mtsieve works on ARM yet?
My thoughts:

1) It might use one mode for CPU and one more for GPU, but I haven't thought about it beyond that.
2) One would configure the size of each work unit in terms of "1e9" or "1e12". All work units would have the same size.
3) Sieving would use the entire list of candidates. The client would get an updated list every xx hours per some server configuration. The server would track work similar to what is done for PRP testing with each client assigned a range of p.
4) It would have to be done via prpclient.ini, which would include GPU/CPU affinity. There are not many settings that you would have for the client. I can only think of -G and -g for GPU sieves.
5) Many of the sieves will work on ARM. You can look at the makefile to see which ones are currently supported. Unfortunately I have not finished the support for Metal (Apple Mx). Maybe that will happen this Christmas.
rogue is offline   Reply With Quote
Old 2022-11-29, 18:35   #5
Happy5214
 
Happy5214's Avatar
 
"Alexander"
Nov 2008
The Alamo City

11100110012 Posts
Default

Quote:
Originally Posted by rogue View Post
1) It might use one mode for CPU and one more for GPU, but I haven't thought about it beyond that.
Splitting up the CPU mode between x86 and ARM is another possibility.

Quote:
Originally Posted by rogue View Post
2) One would configure the size of each work unit in terms of "1e9" or "1e12". All work units would have the same size.
I assume the first work unit would have to be done locally, just to get the initial list. Would it be configured in prpserver.ini?

Quote:
Originally Posted by rogue View Post
3) Sieving would use the entire list of candidates. The client would get an updated list every xx hours per some server configuration. The server would track work similar to what is done for PRP testing with each client assigned a range of p.
That breaks very easily if you ever add candidates. Those would not be sieved in the ranges already marked as "done" on the server.

Quote:
Originally Posted by rogue View Post
4) It would have to be done via prpclient.ini, which would include GPU/CPU affinity. There are not many settings that you would have for the client. I can only think of -G and -g for GPU sieves.
To clarify, since I've never tried to pass flags to the executables through PRPNet, prpclient.ini passes through the whole invocation?

Quote:
Originally Posted by rogue View Post
5) Many of the sieves will work on ARM. You can look at the makefile to see which ones are currently supported. Unfortunately I have not finished the support for Metal (Apple Mx). Maybe that will happen this Christmas.
So someone finally got around to testing it? Nice to hear.
Happy5214 is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
The base 2 analog of A086766 sweety439 sweety439 0 2021-08-31 10:40
"I am experimenting with heuristic sieves." Dobri Dobri 21 2021-08-31 01:42
rogue's sieves rogue And now for something completely different 4 2017-07-31 19:36
Analog hardware to compute FFT's... WraithX Hardware 1 2012-11-28 13:29
PRPnet mdettweiler No Prime Left Behind 80 2010-02-09 21:31

All times are UTC. The time now is 03:44.


Wed Feb 8 03:44:53 UTC 2023 up 174 days, 1:13, 1 user, load averages: 1.14, 0.97, 0.97

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

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