20040416, 13:31  #1 
Dec 2003
216_{10} Posts 
Relative speeds of hardware for different types of work
What are the relative speeds of different types of CPU/cache/memory combinations on different types of work?
o What is the maximum amount of memory that will be used on stage 2 of P1 on different CPUs and ranges? o At what cahce sizes do different FFT sizes "break down" and hit the memory access bottleneck? o How many cycles do each kind of CPU use on each iteration of  factoring (to how many bits?)  LL testing (different FFTs)  P1 testing (both stages) My .ini files are genreated automatically based on information about CPU and memory, and I would like each machine to be as productive as possible. Time is not a major problem, as I back up all changed files every second hour and complete the work on another machine if the first one breaks down. Memory use is not a problem either, since I shut down mprime when a user logs on. (I don't know how to do this on Windows machines, so I use them for factoring only.) Are there plans to implement smarter work distribution in the next version of the server? I.e. if P4s are very effective for factoring up to 64 bits, but less effective to 65 bits, then P4s used for factoring should return their exponent to the server at 64 bits and get a new one, while the first is sent to a PIII or earlier for factoring to 65 bits or above. 
20040416, 21:39  #2 
Sep 2002
2×331 Posts 
For trial factoring:
P4s are very slow at 64 bits and below but very quick at 65 and higher (SSE2 used instead of FPU). For 64 bits and below, at the same clock speed 1 Ghz, Athlon is considerably faster, PIII somewhat faster and the P4 extremely slow. A P4 at a sufficiently high clock speed will still be OK because alot of the time is spent at 65 bits and above using the SSE2 instructions. 
20040418, 13:40  #3 
Jun 2003
7×167 Posts 
LL testing, Doublechecking, and P1 are all basically the same kind of work, i.e., they use the FP FFT transform to do huge multiplications. A processor which is good at one of them will be equally good at the others. Trial Factoring uses only integer arithmetic, except on P4s and recent Celerons, which use FP arithmetic (in a completely different way from FFT) over 64 bits.
P4s and recent Celerons are best at FFT work. They're OK for trial factoring above 64 bits, lousy below 64 bits. Athlons and Durons and P3s are OK at everything. Older processors are best at trial factoring. A reasonable amount of cache is important for FFT work. Not sure how important it is for TF. Large amounts of memory are used only during stage 2 of P1. How much is actually used will depend upon the exponant, and the amount you make available. Quite a complex algorithm is used to decide how much to use. Basically if the optimal amount is larger than the available amount (Very likely, because the optimal amount is it the GBs for exponants currently being tested) then it repeatedly decrements the amount until it fits. The amount by which it decrements is very large  tens or even hundreds of MBs. Also, the client is programmed not to go right up to the limit you set. The upshot of all this is that it will use quite a bit less than you allow. 
20040419, 05:10  #4  
"Richard B. Woods"
Aug 2002
Wisconsin USA
2^{2}×3×641 Posts 
Quote:
Prime95 takes the L1 cache size into account and structures its memory accesses to maximize throughput accordingly. That is, if L1 cache size is 8KB then Prime95 will completely process an 8KB slice of the FFT before it processes the next 8KB slice of the FFT. Furthermore, it "touches" blocks of memory ahead of when it will perform arithmetic on their contents, so that those blocks will be prefetched into cache while Prime95 is processing something else. So in this regard Prime95 already optimizes memory accesses, and FFT size doesn't matter much to that. (And everything above about Prime95 also applies to mprime.) Quote:
Last fiddled with by cheesehead on 20040419 at 05:19 

20040419, 05:33  #5  
"Richard B. Woods"
Aug 2002
Wisconsin USA
2^{2}·3·641 Posts 
Quote:


20040419, 20:32  #6  
Dec 2003
2^{3}·3^{3} Posts 
Quote:
Progressive reporting of factoring is practically done already, and less work would have to be repeated. When progressive reporting is implemented, it would be a simple task to put the exponent back in line after factoring to a certain limit. Similar could be done with stages 1 and 2 of P1 factoring. Many expoments will never get a stage 2 run. I have a few fast machines with GBs of memory dedicated to P1 factoring, and it would be best if I could get P1 stage 2 work directly from the server. For now I allocate lots of work with SequentialWorkToDo=0 and move the Test= lines to machines with less memory when P1 is done. The simple task is to divide P1 factoring and trial factoring into two different work types, stages 1 and 2 and <64 bit and >64 bit, and let mprime choose the work somewhat intelligently. 

20040419, 23:37  #7 
Aug 2002
Texas
5·31 Posts 
If you have a concern about partial factoring, you know you can manipulate primenet to perform factoring up to whatever bit depth you desire and then dump the results back to the server. After a while a script comes behind the returned work that becomes "stuck" and puts the exponents back on the market at the new bit depth.

20040420, 19:58  #8  
"Richard B. Woods"
Aug 2002
Wisconsin USA
2^{2}·3·641 Posts 
Quote:
What I was referring to was the deliberate splittingup of assignments even though the machine was fully capable of completing the entire unsplit factoring range. Your proposal refers, in effect, to an unplanned splitting of an assignment (though once it's implemented, it could also be used with deliberate intent). Quote:


Thread Tools  
Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
What do the different types of work each mean?  jrafanelli  Information & Answers  20  20190201 05:27 
New work types  Unregistered  Information & Answers  0  20110725 10:19 
Work Types  Unregistered  Information & Answers  3  20100728 09:54 
v5 work types  S00113  PrimeNet  14  20081210 00:26 
Two different P1 types of work in worktodo.ini  eepiccolo  Software  1  20030430 19:54 