Difference between revisions of "Using hyperthreading"

From ScientificComputing
Jump to: navigation, search
(Basic info about HT on Euler.)
(Better clarification)
Line 1: Line 1:
 
''[https://en.wikipedia.org/wiki/Hyper-threading Hyperthreading] is being rolled out to all Euler nodes. It is already enabled on all [[Euler_III_Beta_Testing|Euler III]] nodes.''
 
''[https://en.wikipedia.org/wiki/Hyper-threading Hyperthreading] is being rolled out to all Euler nodes. It is already enabled on all [[Euler_III_Beta_Testing|Euler III]] nodes.''
  
When hyperthreading is enabled, the Intel processors in the Euler cluster allow two processes or threads to run simultaneously on a single physical core. In most cases this brings no changes to your jobs. In some cases this allows you to increase the throughput of your program at the expense of longer execution time of each individual thread.
+
When hyperthreading is enabled, the Intel processors in the Euler cluster allow two processes or threads to run simultaneously on a single physical core. On Euler I and II nodes, the operating system will see 48 virtual cores: two virtual cores for every physical core. In most cases this has no negative effect your jobs. In a few cases this allows you to increase the throughput of your program at the expense of longer execution time of each individual thread.
  
 
We have not observed any drawback or performance regression by enabling hyperthreading.
 
We have not observed any drawback or performance regression by enabling hyperthreading.
Line 7: Line 7:
 
== Relation to LSF job slots ==
 
== Relation to LSF job slots ==
  
LSF is aware of hyperthreading so '''there is no change to how jobs are assigned to physical cores'''. This means there continue to be 24 job slots on the 24 cores of an Euler I or II node. The slots, however, are assigned to both hyperthreads of a physical core.
+
LSF is aware of hyperthreading so '''there is no change to how jobs are assigned to physical cores'''. This means there continue to be 24 job slots on the 24 cores of an Euler I or II node. The slots, however, are assigned to both virtual cores of a physical core.
  
 
All of the supported MPI libraries we provide are also aware of hyperthreading and continue to schedule only one rank (MPI processes) to an individual physical core.
 
All of the supported MPI libraries we provide are also aware of hyperthreading and continue to schedule only one rank (MPI processes) to an individual physical core.

Revision as of 11:20, 31 March 2017

Hyperthreading is being rolled out to all Euler nodes. It is already enabled on all Euler III nodes.

When hyperthreading is enabled, the Intel processors in the Euler cluster allow two processes or threads to run simultaneously on a single physical core. On Euler I and II nodes, the operating system will see 48 virtual cores: two virtual cores for every physical core. In most cases this has no negative effect your jobs. In a few cases this allows you to increase the throughput of your program at the expense of longer execution time of each individual thread.

We have not observed any drawback or performance regression by enabling hyperthreading.

Relation to LSF job slots

LSF is aware of hyperthreading so there is no change to how jobs are assigned to physical cores. This means there continue to be 24 job slots on the 24 cores of an Euler I or II node. The slots, however, are assigned to both virtual cores of a physical core.

All of the supported MPI libraries we provide are also aware of hyperthreading and continue to schedule only one rank (MPI processes) to an individual physical core.

Using hyperthreading

In those cases where you are running a loosely-coupled parallel program, you can make use of hyperthreading to let twice as many processes run as you have requested cores. While each individual processes will run slower, the time-to-solution will probably be faster than if they sequentially one after the other.