Just wondering if nodes benefit from SMT/HT, or if turning off SMT improves performance somewhat, specially on older hardware.
If your cpu supports it theres no reason to disable it any extra performance on the table is better then without it.
But to say nodes benefit from it possibly since it will choose which thread to run on so if your running any other process it will help especially on windows.
If your asking if its for power savings and you want to be as power efficient as possible and your running linux it really doesnt save power by disabling it.
True, not only power savings but actual thread speed, I think L1 and L2 cache becomes shared on thread siblings that can increase thread execution due to cache miss, thread speculation can lead to increased power consumption and lower clocks, it can become slower if the application is not optimized for SMT.
This is maybe trivial on new CPUs, but some old and low power CPUs with small L1 and L2 this could have an effect? Maybe?
This is more of an “academic” curious question, brain looks at it and goes vrummmm! Sorry.
I tested this on an older cpu power was pretty much the same with HT disabled as if it was enabled. Cpu is a dual core cpu so with HT it is a 4 core cpu, So it has better performance then if it was a dual core cpu with HT turned off.
Newer cpus are already more efficient in every way compared to old cpus so if you disabled HT or SMT on a newer cpu you would be disabling actual cores which would use lower power Older cpus there just bad all around for power so disabling HT or SMT you dont really save on power.
For L1 an L2 it really varys but for older cpus depending on there size of cache of course enabling HT really helps with multi processes even with low amounts of cache on the cpu. Dual core vs Quad core with HT enabled. Is always better then just a Dual core cpu. Which it would be recommend to run on a linux machine since it has alot fewer processes.
It would be hard to measure performance for a node though with it disabled or enabled since a single core can run a node fine.
For the time being I left SMT on, added CPUAffinity on systemd for system processes and set other cores and thread siblings to storj exclusively, maybe it’s just me but I think it helps.