Shouldn't they all work? I'm sure that when "simple" masks work the "complex" ones will follow.
Question: "half threads (28), default affinity": what is a pass in this test? Default affinity always works in that all CPUs are allocated to the process.
First question: Absolutely but they don't and it's easier to troubleshoot with fewer variables.
Second question: I can look at the data when available and determine myself but I also wanted to compare
with your expectations when using a simpler mask.
Computers are binary, everything works better in powers of 2.
I think you're overcomplicating things. Defaults exist for a reason, you shouldn't change them
without a very good reason and knowing what you're doing. You stilll haven't given me a reason
and I have questions that you know what you're doing considering you're using an alternating
bit affinity mask with an Intel CPU. That's not meant to be an insult, it's just that I fail to see any
logical reason for what you are doing or why.
There's another downside to specifying a custom cpu affinity. Whe using the default
each thread is affined to a precise cpu, the one matching the thread number.
With a custom affinity mask it's more complicated so the thread is afffined to the "mask"
which means any of the allowable cpus.
I don't feel like doing the additional coding to do one to one matching of each thread
to a unique allowable cpu.
Affinity should only be needed if there is a good reason to run fewer threads and if the CPU
is an AMD. That's small set.