Using Hyperthreading with NetworkComputer


There is a downside to using hyper-threading with NC with default settings.

NC will view a hyper-threaded core as two slots, consuming twice the licenses, but only yielding slightly better performance than a single, non hyper-threaded core. For this reason, we recommend setting the capacity (number of job slots) manually, or turning off hyper-threading in the BIOS.

We recommend profiling your application with and without hyper-threading to see the performance/license usage trade-off on an implementation by implementation basis.

The NC admin has complete control of how many licenses to allocate per host when using a keyfile or RLM-enterprise (slots_nc) features, by using the -capacity option in the slaves.tcl config file.

It is only the default behavior that will allocate licenses to hyper-threads.

The NC vovserver asks the OS how many cores there are, and it counts hyperthreads on Linux.

For example, on a 2-chip, 8-core/chip box with hyperthreading, the OS will report that there are 32 processors in /proc/cpuinfo, but there are really only 16 cores, so -capacity 16 should be used.