![]() |
![]() |
#1 |
Nov 2008
916 Posts |
![]()
Hi!
Unfortunately it seems not possible to set the affinity of helper threads. I've got a new Core i7, and currently the highest throughput can be achieved by starting 4 independent LL checks. I don't gain, nor loose anything, when starting 8 independent LL checks (some gain through hyperthreading, balanced by some loss through half the L2 cache i guess). What I would like to do is this: [Worker #1] Affinity=0 HelperAffinity=1 (and so on). Without this setting, the helper threads get assigned quite weirdly: First worker says this: Setting affinity to run worker on logical CPU #0 Setting affinity to run helper thread 1 on logical CPU #2 Second worker says this: Setting affinity to run worker on logical CPU #2 Setting affinity to run helper thread 1 on logical CPU #4 And so on. But hey, I notices something strange: The last worker says: Setting affinity to run worker on logical CPU #6 Setting affinity to run helper thread 1 on logical CPU #8 OOOps? Do I have 9 (!) CPUs? Numbering from #0 to #8? Or is there rather a bug in the output of the affinity of the helper thread? Can you confirm this, George? Does the "worker"-line number CPUs from #0 to #7, while the "helper"-line numbers them from #1 to #8? Then the assignment algorithm would be fine, just the numbering is inconsistent :-))) Edit: No, its really a wrong and weird assignment. The Task-Manager says, that with those 8 threads, the CPU is loaded only 50%! Cores 0 and 1 are at 50%, Cores 2, 4 and 6 are at 100%, while cores 3, 5 and 7 are totally empty! Edit2: Activating "smart assignment" is even weirder: Workers 1 and 2 are BOTH given the same affinities: Setting affinity to run worker on logical CPUs 0,4 Setting affinity to run helper thread 1 on logical CPUs 0,4 And Workers 3 and 4 do the same with CPUs 1,5. Last fiddled with by Meikel on 2008-11-13 at 19:43 |
![]() |
![]() |
![]() |
#2 |
Oct 2008
California
111011002 Posts |
![]()
i can confirm the weird output: i have a hyperthreaded p4, thus there are two logical cpu's. when i said main worker to cpu #0, it shows "setting affinity to run worker on cpu #0" and "setting affinity to run helper thread on cpu #2"
if i set main worker to run on cpu #1: "setting affinity to run worker on cpu #1" and "setting affinity to run helper thread on cpu #3" ... given that it says "setting affinity to run worker on cpu #1" when i set main worker to run on cpu #1, i assume it should read cpu #0 and #1, or cpu #1 and #0, but i certainly don't have 4 cpus! |
![]() |
![]() |
![]() |
#3 |
P90 years forever!
Aug 2002
Yeehaw, FL
22×2,089 Posts |
![]()
I'll be looking into this when I get home in 3 days.
|
![]() |
![]() |
![]() |
#4 |
P90 years forever!
Aug 2002
Yeehaw, FL
22×2,089 Posts |
![]()
Affinity code is being reworked. Please try again when 25.8 is available.
|
![]() |
![]() |
![]() |
Thread Tools | |
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
"Master" and "helper" threads | Madpoo | Software | 0 | 2016-09-08 01:27 |
How to assign smallest exponents | rudi_m | Data | 2 | 2016-01-27 15:22 |
How to assign myself ECM assignment | Miszka | Information & Answers | 3 | 2013-08-01 04:57 |
Helper Thread Affinity | TObject | Software | 3 | 2012-07-20 19:21 |
Workers, Threads, Helper Threads, Cores, Affinity. | lorgix | Information & Answers | 12 | 2011-01-13 22:31 |