How does Chapel handle hyper-threaded cores, i.e. two threads fighting for access to a single FPU?
Our experience with floating point intensive applications is that two threads fighting for access to an FPU spend time fighting so we turn hyper-hreading to avoid that wasteful fighting so I advice against them.
I am curious at other's experience with hyper-threading just in case such avoid is rubbish. Thanks
Hi Damian —
By default, Chapel doesn't use hyperthreading, which is to say, we create a number of threads equal to the number of physical cores rather than virtual ones. Users can override this choice by setting
CHPL_RT_NUM_THREADS_PER_LOCALE to a numeric value to get a different number, or to
MAX_LOGICAL as a mnemonic for "please create a task per hyperthreaded core". See Chapel Tasks — Chapel Documentation 1.28 for details.
Thanks Brad. Answers my question.
In my personal experience there is no floating point performance to be gained from using SMT Cores, no mater if it's on Intel or AMD processors.
I think that is everybody's experience. Just wanted to ensure that my beliefs matched others' reality,