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

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…

X-Force report reveals top cloud threats: AITM phishing, business email compromise, credential harvesting and theft

4 min read - As we step into October and mark the start of Cybersecurity Awareness Month, organizations’ focus on protecting digital assets has never been more important. As innovative new cloud and generative AI solutions help advance today’s businesses, it’s also important to understand how these solutions have added to the complexity of today’s cyber threats, and how organizations can address them. That’s why IBM—as a leading global security, cloud, AI and business service provider—advocates to our global clients to take a proactive…

Top 6 innovations from the IBM – AWS GenAI Hackathon

5 min read - Eight client teams collaborated with IBM® and AWS this spring to develop generative AI prototypes to address real-world business challenges in the public sector, financial services, energy, healthcare and other industries. Over the course of several weeks, cross-functional teams comprising client teams, IBM and AWS representatives worked to design, develop and iterate on prototypes that push the boundaries of what's possible with generative AI. IBM used design thinking and user-centric approach to guide the teams throughout the hackathon. AWS provided…

IBM Newsletters

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