mersenneforum.org  

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

Reply
 
Thread Tools
Old 2008-11-13, 19:20   #1
Meikel
 
Nov 2008

916 Posts
Default How to assign helper threads affinity?

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
Meikel is offline   Reply With Quote
Old 2008-11-14, 03:15   #2
starrynte
 
starrynte's Avatar
 
Oct 2008
California

111011002 Posts
Default

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!
starrynte is offline   Reply With Quote
Old 2008-11-14, 09:52   #3
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

22×2,089 Posts
Default

I'll be looking into this when I get home in 3 days.
Prime95 is online now   Reply With Quote
Old 2008-11-22, 14:36   #4
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

22×2,089 Posts
Default

Affinity code is being reworked. Please try again when 25.8 is available.
Prime95 is online now   Reply With Quote
Reply

Thread Tools


Similar Threads
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

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


Sat Sep 23 11:10:20 UTC 2023 up 10 days, 8:52, 0 users, load averages: 1.95, 1.38, 1.36

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.

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