![]() |
Hyperthreading
I have one computer that has hyperthreading. With the new version of Prime95 I notice that I can assign two workers. How much more throughput will I get by assigning two workers on a hyperthreaded CPU? (My guess 10-15%).
|
On my Pentium 4, I get about 6% more throughput, but that varies depending on the programs I use that day.
Essentially, say 1 worker takes some amount of time. "Normally" it would take double that amount of time to run 2 workers. With hyperthreading though, 2 workers takes just slightly less than two times the amount of time. (Multithreading LL tests does work reasonably well on hyperthreading though) |
[QUOTE=starrynte;160121]On my Pentium 4, I get about 6% more throughput, but that varies depending on the programs I use that day.
Essentially, say 1 worker takes some amount of time. "Normally" it would take double that amount of time to run 2 workers. With hyperthreading though, 2 workers takes just slightly less than two times the amount of time. (Multithreading LL tests does work reasonably well on hyperthreading though)[/QUOTE] Not me. I have two single-core hyperthreading PIV's; a 2.4 Ghz and a 3.4 Ghz. Both actually run about 3-5% SLOWER when I choose 2 CPUs. I have NOT tried v25.9, though. |
[quote=petrw1;160127]Both actually run about 3-5% SLOWER when I choose 2 CPUs.[/quote]
This occasionally happens with mine, but 90% of the time that's because some program I'm running is "stealing" CPU cycles. So assuming average usage, you'd get anywhere from 10% increase to 5% decrease in performance, depending on the programs being used... |
Thanks, I have enough workers running that I don't think using the hyperthreading is really worth it for me.
|
I just want to be sure ...
On my P4 I found that running one LL thread and one TF thread gave me at least +15%. The task manager would show 100% CPU. In the evenings when I was usually home, I had the TF thread stop and task manager showed 50% each thread, as expected.
Now on version 25, it shows 100% with only one worker doing just LL. Is the LL using both threads better via the "helper"? If I can specify different work types for each worker I will try using 2. Otherwise I don't see how to do it. |
<assuming you are doing DC/LL tests>
If you set 1 worker, multithreading 1, I believe there will be 1 worker using both logical cores (for a total of 1 thread working on the assignment, there's no helper thread!). This, naturally, uses all the CPU. (Though it may appear as only 50%, I've read somewhere that this was because of hyperthreading, but I'm not completely sure) If you set 1 worker, multithreading 2, there will be 1 worker along with a helper thread (for a total of 2 threads working on the assignment). This does NOT use 100% CPU (at least not on mine), only something between 80 and 90. (100% CPU usage may occur though, if you have a lot of other programs running) If you set 2 workers, multithreading 1, there will be 2 workers (for a total of 1 thread working on each worker's assignment). This uses 100% CPU. If you set 2 workers, multithreading 2, Prime95 will warn you as this means each worker is using 2 threads, for a total of 4 threads. Yet there are only 2 CPU's for 4 threads to run on, meaning DECREASED performance. [quote]Is the LL using both threads better via the "helper"?[/quote]An LL with a helper = 1 worker, multithreading 2. In the long run, performance will be decreased (slightly), but if all you want to do is finish the assignment, a helper thread will speed up the LL. (Though be warned that if the helper thread is affected in performance, the main thread is also.) [quote]If I can specify different work types for each worker[/quote]You can set a different work type for each worker that you have. |
I have a Intel I7, which is a quad core with hyperthreading. So right now I'm running 4 workers at 2 multithreading each, as my cpu has 8 logical cores with hyperthreading on and my cpu usage is at 50%. Shouldn't it be at least around 80%-100%
|
oh and also regarding apps "stealing" cpu cycles, for those who use Digsby (an IM client) there is apparently a "research module" that runs distributed computing projects after the computer has been idle for 5 minutes. (see [url]http://blog.digsby.com/archives/68[/url] for more details) To disable, go to Help -> Support Digsby and disable "Help Digsby Conduct Research" (enabled by default thus far)
|
[quote=Unregistered;163597]I have a Intel I7, which is a quad core with hyperthreading. So right now I'm running 4 workers at 2 multithreading each, as my cpu has 8 logical cores with hyperthreading on and my cpu usage is at 50%. Shouldn't it be at least around 80%-100%[/quote]
I think TF only uses 1 thread. If you do LL, then it will use any number of threads I think. Not sure about P-1, as I only did one of those so far. |
[quote=xorbe;164533]I think TF only uses 1 thread. If you do LL, then it will use any number of threads I think. Not sure about P-1, as I only did one of those so far.[/quote]Seems to me that beneficial multithreading ought to be a matter of whether or not FFTs are involved. That is, the same benefit for LL would apply to P-1 and ECM, so thread-splitting could be deferred to the FFT code common to all three. I've looked briefly for it in the source code, but haven't found where thread-splitting is done.
|
P-1 is multi-threaded except the short part at the end of the stages.
|
| All times are UTC. The time now is 20:16. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.