How do you do,
I have a few questions regarding the hyper-threading technology. I'm quite experienced in multithreaded computations in general, but have virtually no experience with HT.
(i) AFAIK, the very essence of HT is that when the currenlty running thread does not use some resources of the processor/core, another one can use them. Does it mean that the potential performance is better for threads running completely different tasks (e.g., one thread does the floating-point computations and the other one does not)? Because the other way they may compete for the same resources. Other words: does task parallelizm perform better with HT than data parallelizm?
(ii) I'm particularly interested in computations, requiring directed rounding (interval computations). Does setting the rounding mode affect *both* threads running on a core, using HT? This would be very unpleasent...
(iii) According to the Wikipedia article about Hyper-threading, practical performance boosts are about 10-20%. What are your experiences?
Thanks in advance for all answers or hints