August 20, 2021 By Seetharami Seelam 2 min read

How to disable hyper-threading in IBM Cloud — best practices for HPC workloads.

Some high-performance computing (HPC) applications in EDA, weather, oil and natural gas and simulations in various domains benefit from running with hyper-threading (HT) disabled in the guest operating system. MPI application experts typically have handy tools to bind their MPI tasks to primary threads and leave the secondary threads idle. Software licensing issues and interference from OS threads that run these secondary threads cause issues for HPC applications, so some HPC experts prefer to disable hyper-threading altogether inside the guest virtual machines.

We have written a detailed document on how to disable HT through two different methods:  

  1. A user-level script that one could run inside the virtual machine
  2. Commands to disable at the boot time

The goal of this blog post is to give a short summary of these steps.

How to check if hyper-threading (HT) is on or off

Simply run the lscpu command and notice the output:

 [root@seelam-q-test ~]# lscpu
...
CPU(s):              8
On-line CPU(s) list: 0-7
Thread(s) per core:  2
...

Two threads per core indicate that the HT is on. If it is off, you will have one thread per core. 

How to turn hyper-threading off and on — the dynamic way

You can disable HT by simply writing a zero into the online field of the sys fs location for a given CPU. To turn off HT of core 0, the command would be: echo 0 > /sys/devices/system/cpu/cpu1/online

This disables HT on core 0 but the other cores are still running in HT mode. You can repeat the above process for all cores or use the handy script provided in the documentation.

Turning on HT requires writing a “1” into the `online` field. 

This gives full control to the end user as to when to turn on and off the HT mode and which cores to turn on and off.

How to turn hyper-threading off — the static way

In situations where you know up front that these nodes are used for HPC applications exclusively or they are created and destroyed dynamically, and the end user should not be bothered with such changes, HT can be disabled at boot time by posting the script below in the cloud-init User Data field:

#cloud-config
bootcmd:
 - for cpunum in $(cat /sys/devices/system/cpu/cpu*/topology/thread_siblings_list | cut -s -d- -f2- | tr ',' '\n' | sort -un); do echo 0 > /sys/devices/system/cpu/cpu$cpunum/online; done

Conclusion

In this post, we showed how to disable hyper-threading in IBM Cloud virtual servers either by the end users or by the sys admins. Please refer to IBM Docs for detailed instructions. Try your HPC workloads on IBM Cloud directly or by using the HPC service and give us your feedback.

Was this article helpful?
YesNo

More from Cloud

Fortressing the digital frontier: A comprehensive look at IBM Cloud network security services

6 min read - The cloud revolution has fundamentally transformed how businesses operate. Its superior scalability, agility and cost-effectiveness have made it the go-to platform for organizations of all sizes. However, this shift to the cloud has introduced a new landscape of ever-evolving security threats. Data breaches and cyberattacks continue to hit organizations, making robust cloud network security an absolute necessity. IBM®, a titan in the tech industry, recognizes this critical need, provides a comprehensive suite of tools and offers unmatched expertise to fortify…

How well do you know your hypervisor and firmware?

6 min read - IBM Cloud® Virtual Private Cloud (VPC) is designed for secured cloud computing, and several features of our platform planning, development and operations help ensure that design. However, because security in the cloud is typically a shared responsibility between the cloud service provider and the customer, it’s essential for you to fully understand the layers of security that your workloads run on here with us. That’s why here, we detail a few key security components of IBM Cloud VPC that aim…

New IBM study: How business leaders can harness the power of gen AI to drive sustainable IT transformation

3 min read - As organizations strive to balance productivity, innovation and environmental responsibility, the need for sustainable IT practices is even more pressing. A new global study from the IBM Institute for Business Value reveals that emerging technologies, particularly generative AI, can play a pivotal role in advancing sustainable IT initiatives. However, successful transformation of IT systems demands a strategic and enterprise-wide approach to sustainability. The power of generative AI in sustainable IT Generative AI is creating new opportunities to transform IT operations…

IBM Newsletters

Get our newsletters and topic updates that deliver the latest thought leadership and insights on emerging trends.
Subscribe now More newsletters