mersenneforum.org  

Go Back   mersenneforum.org > Other Stuff > Archived Projects > NFSNET Discussion

 
 
Thread Tools
Old 2003-07-11, 17:44   #1
TauCeti
 
TauCeti's Avatar
 
Mar 2003
Braunschweig, Germany

2×113 Posts
Default Some questions regarding the client

I know that i am notoriously curious, but i cannot restrain me to ask some more questions:

- Are the inner loops of the client hand-coded or is the whole client compiled from a (c++?) source?

- If the client is compiled: what compiler did you use? MSVC? If MSVC: did you ever try to compile the source with another (Intel, GCC) compiler for performance enhancements? OK... i admit a lot of 'ifs' here

- does the server actually use the statistical information the client sends back (relative times for init, sieve small, sieve medium, sieve large, resieve...) to send specific workloads for the clients optimized for their L1, L2, L3 and bandwith footprint?

- Would it make sense to compile special (optimized) versions for the different CPUs? I am still wondering what little (relative) impact the actual CPU frequency has on the performance of the client. Is memory prefetching used in the client?

- are the relations checked when the clients send them back? The more participants NFSNET gets and the longer the projects run, the higher is the possibility that some 'bad guys' try to spoil the fun sending back faked results. If those faked results could make the LA-stage unsolvable it would be _very_ bad indeed...

Ooops - enough for now...

Tau
TauCeti is offline  
Old 2003-07-11, 19:00   #2
Wacky
 
Wacky's Avatar
 
Jun 2003
The Texas Hill Country

32×112 Posts
Default Re: Some questions regarding the client

Quote:
Originally Posted by TauCeti
I know that i am notoriously curious, but i cannot restrain me to ask some more questions:
Your questions are certainly of interest to many "curious" participants.
I would suggest that they might be better answered on the nfsnet-l mailing list which reaches all the participants and not just those interested in Mersenne numbers.

Quote:
Originally Posted by TauCeti
- Are the inner loops of the client hand-coded or is the whole client compiled from a (c++?) source?
I don't know how to answer this. The code was not produced by some machine translation (like yacc or Fortran), so I would have to say that it is "hand coded". But that also applies to most C++ code also.
On the other hand, only a very small part of the code, and then only on certain platforms, is written in Assembler. The majority of the code is written in C, rather than C++.
Quote:
Originally Posted by TauCeti
- If the client is compiled: what compiler did you use? MSVC? If MSVC: did you ever try to compile the source with another (Intel, GCC) compiler for performance enhancements? OK... i admit a lot of 'ifs' here
"If the client is compiled" -- Of course it is compiled. I cannot imagine it being interpreted.

As for the compiler, that depends on the platform.
Quote:
Originally Posted by TauCeti
- does the server actually use the statistical information the client sends back (relative times for init, sieve small, sieve medium, sieve large, resieve...) to send specific workloads for the clients optimized for their L1, L2, L3 and bandwidth footprint?
Those stats have been valuable in the siever design, but are not used in the day-to-day operation. The server, per se, doesn't care about the client cache sizes. It bases its assignment size on the processing rate. The only factor that the server might need to consider is available memory. We haven't gotten there yet, but we might wish to run projects in parallel and assign "simpler" projects to the smaller machines.
Quote:
Originally Posted by TauCeti
- Would it make sense to compile special (optimized) versions for the different CPUs? I am still wondering what little (relative) impact the actual CPU frequency has on the performance of the client. Is memory prefetching used in the client?
There is really only one part of the code that is significantly affected by the cache size. Each "line" spans a group of "a" values that is too large to fit in the caches. On most architectures, the client code reads the cache sizes from the CPU. The inner loop size is chosen to subdivide that line into pieces of an appropriate size to be "cache friendly". A significant amount of time has been spent in making the siever fast and efficient. "Tricks", such as prefetch, are used extensively.

Quote:
Originally Posted by TauCeti
- are the relations checked when the clients send them back? The more participants NFSNET gets and the longer the projects run, the higher is the possibility that some 'bad guys' try to spoil the fun sending back faked results. If those faked results could make the LA-stage unsolvable it would be _very_ bad indeed...
We do not check the relations immediately. However, they are screened periodically. Since we track the contributor of each (proposed) relation, we can easily discard fake contributions. As it is, we already discard the very few relations that have somehow gotten corrupted. At worst, we might get a false sense of progress until we catch the fakes at the checkpoint. There are some other "features" in the system to address these problems. But, on a cost - benefit basis, they are not an efficient use of our present resources and therefore not active. If conditions change, so may our procedures.

In any case, the nature of the Number Field Sieve method "protects" us from bogus results in that each relation submitted is really just a hint toward the solution and it is the total number, rather than any particular one, that is important.
Wacky is offline  
Old 2003-07-11, 19:42   #3
TauCeti
 
TauCeti's Avatar
 
Mar 2003
Braunschweig, Germany

2×113 Posts
Default Re: Some questions regarding the client

Quote:
Originally Posted by Wackerbarth
Your questions are certainly of interest to many "curious" participants.
I would suggest that they might be better answered on the nfsnet-l mailing list which reaches all the participants and not just those interested in Mersenne numbers.
Thinking about it, i agree. But i did not get a lot of traffic in the list the last weeks and so i assumed that most participants had moved to this forum (like it is with prime95).

Quote:
Originally Posted by Wackerbarth
"If the client is compiled" -- Of course it is compiled. I cannot imagine it being interpreted.
Hmm.. i was thinking about coding assembler (humans do the 'compiling') vs. coding in a high-level language (c/c++).

And finally the CPU does _interpret_ the assembler code!? To actually compile that code the CPU would have to reconfigure it's hardware according to the code (still some years ahead of us). Imho the terms compiling and interpreting depend on your viewpoint. (ok, i admit the flaw in my original question, but the distinction between compiling and interpreting is not that sharp nowadays)

Quote:
Originally Posted by Wackerbarth
In any case, the nature of the Number Field Sieve method "protects" us from bogus results in that each relation submitted is really just a hint toward the solution and it is the total number, rather than any particular one, that is important.
Hmmm... Then let me ask another question:

I have got the Crandall/Pomerance and still struggle to understand the QS. But i think i understand the part how to calculate the number of relations to be reasonable sure to get the final solution. Now the question: Is the set of relations below that threshold (e.g. only 75% of the required # of relations) 'worthless', or is there a probability (below 1) that we could find a solution even with a underdetermined matrix. I have the feeling, that the answer to that question turns out to be very simple but i am unable to answer it.
TauCeti is offline  
Old 2003-07-11, 20:21   #4
Wacky
 
Wacky's Avatar
 
Jun 2003
The Texas Hill Country

44116 Posts
Default Re: Some questions regarding the client

Quote:
Originally Posted by TauCeti
Quote:
Originally Posted by Wackerbarth
Your questions are certainly of interest to many "curious" participants.
I would suggest that they might be better answered on the nfsnet-l mailing list which reaches all the participants and not just those interested in Mersenne numbers.
Thinking about it, i agree. But i did not get a lot of traffic in the list the last weeks and so i assumed that most participants had moved to this forum (like it is with prime95).
That is the reason that I was opposed to the formation of this forum.
Frankly, I hate the format. To me, an email list is far superior.
Wacky is offline  
Old 2003-07-11, 21:11   #5
ColdFury
 
ColdFury's Avatar
 
Aug 2002

26×5 Posts
Default

Quote:
or is there a probability (below 1) that we could find a solution even with a underdetermined matrix
Yes, but nobody wants to go thru all that linear algebra just to not find a solution. Sieving is (relatively) cheap, so it's better to do more sieving and insure we'll get a solution.
ColdFury is offline  
 

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Won't run after client update puh_32 Prime Sierpinski Project 6 2011-09-13 06:51
ECC2-109 Client Robert Holmes Programming 4 2009-01-09 14:21
GUI-less client for V5? ahmerali PrimeNet 4 2008-11-11 01:46
LLR Mac client drakkar67 Prime Sierpinski Project 5 2008-07-10 12:37
Octoproth client questions em99010pepe Octoproth Search 15 2006-11-25 22:10

All times are UTC. The time now is 11:00.


Thu Feb 2 11:00:41 UTC 2023 up 168 days, 8:29, 1 user, load averages: 1.07, 0.92, 0.90

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.

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