Each compute node in an Elastic High Performance Computing (E-HPC) cluster is an Elastic Compute Service (ECS) instance. By default, Hyper-Threading (HT) is enabled for each ECS instance. In some high-performance computing (HPC) scenarios, you can disable HT to improve the performance of instances. This topic describes how to disable HT for compute nodes.
Background information
CPUs are central processing units. A CPU can contain several physical cores. You can use the HT technology to create two virtual processing cores for each physical core in a CPU. ECS supports multi-threading based on HT that enables two threads to concurrently run on a single physical core. Each thread can be considered as a virtual CPU (vCPU). vCPUs are virtual processing cores of ECS instances. In some HPC scenarios, you can disable HT on compute nodes to improve their performance.
Usage notes
Different types of instances have different limits on disabling HT.
HT can be disabled only on some enterprise-level x86 compute-optimized ECS instances. For more information, see Instance type limits.
HT cannot be directly disabled on ECS Bare Metal Instances, but can be disabled at the software level.
HT is disabled on Super Computing Cluster (SCC) instances by default.
Disable HT on enterprise-level x86 compute-optimized ECS instances
If you need to add compute nodes to a created cluster, you can specify whether to enable HT for these instances.
HT cannot be disabled on enterprise-level x86 compute-optimized ECS instances after they are created.
Manual scale-out
Auto scaling
Disable HT on ECS Bare Metal Instances
You can disable HT on ECS Bare Metal Instances at the software level after the instance is created, which is inside guest operating systems. To do so, you can either set nr_cpus or change the vCPU status. Each physical core corresponds to two virtual processing cores. Disabling HT inside guest operating systems is actually disabling one virtual processing core on each physical core. In this way, one physical core corresponds to only one virtual processing core.
To physically disable HT on bare metal servers, you need to manage the motherboard BIOS. This process requires restarting hardware, which is complex and risky. Therefore, we recommend that you use the two methods described in this topic. You can manage the HT at the software level to achieve an effect similar to disabling.
Method | Advantages | Disadvantages |
Set nr_cpu | When you use commands such as |
|
Change vCPU status | You can run commands to change the status of vCPUs without restarting the instance. After HT is disabled in this way, you can use the |
|
We cannot guarantee whether these two methods will affect your business in real life. We recommend that you fully evaluate the business impact in real-life production environment.