Why the OS is So Important when Running HPC Applications

Print Friendly, PDF & Email
running HPC applications

This feature continues our insideHPC series that explores the HPC transition to the cloud, and what your business needs to know about this evolution. Compiled in a complete Guide available here, this segment covers: cloud computing for HPC, why the OS is important when running HPC applications, OpenStack fundamentals, and more. 

One challenge when moving workloads to a cloud environment is how to keep track of and control the computing systems, the storage systems and the networking that is needed for a smooth and efficient operation. Since HPC applications will consume a high percentage of the resources, and will need to “own” the resources that are being consumed, an environment that keeps track of the ongoing resource consumption is also needed. Simply relying on users or admins to try to keep track of this won’t work, especially as HPC cluster usage fluctuates over time. Using a software system such as OpenStack gives organizations control over their resource consumption through visual dashboards, rather than relying on a hodgepodge of one-off scripts.

running HPC applications

Using a software system such as OpenStack gives organizations control over their resource consumption through visual dashboards, rather than relying on a hodgepodge of one-off scripts.

Although many developers and users assume that there is a well-behaving and well-performing OS in place, the reality of running HPC applications is such that they require an OS with utmost portability, performance and scalability as compared to an OS that is not meant for serious computational tasks. Some of the critical attributes include:

MEMORY LATENCIES

As data is moved from storage to memory to the CPU, the OS is a critical part of this data path. While the memory bandwidth will depend on the underlying hardware, latencies and memory access can be accelerated by the OS.

[clickToTweet tweet=”Running HPC applications require an OS with utmost ‘portability, performance and scalability.'” quote=”Running HPC applications require an OS with utmost ‘portability, performance and scalability.'”]

PARALLEL EXECUTION

Modern and certain types of HPC applications will take advantage of the hardware presented. Even on a single chip today, dozens of different threads can be executed simultaneously, all of which must be managed by the OS. On a single server that consists of CPUs, more than 100 threads must be managed at the same time. Since many HPC applications depend on the different threads to complete a task before synchronizing, efficient management of all of the threads is very important.

On a single server that consists of CPUs, more than 100 threads must be managed at the same time.

HETEROGENEOUS HARDWARE SUPPORT

Many applications can now take advantage of accelerators for a portion of their computing tasks. Between general-purpose computing on graphics processing units (GPGPU) and field-programmable gate arrays, the OS must be able to recognize and incorporate different computing elements into a system and allow the applications to take full advantage of their processing power as needed.

CONTAINERS

While different applications are dependent on other software, it would be quite a challenge to run these different applications on the same native OS. There are bound to be dependencies on which libraries to use with a particular workload at a given time. By using containers to isolate each executable, hardware-level performance can be obtained without having the overhead of a fully fledged virtual machine for each and every application.

VIRTUALIZATION

In certain instances, a virtual machine will be required for environments where completely separate and distinct operating systems must be run, and where the hardware is capable of running multiple applications at once. For example, a large server could be configured through virtualization to run multiple OS instances. If the server is powerful enough, then a number of smaller HPC workloads can be run at a time, each with their own, customized environment.

Over the next few weeks, this series on the HPC transition to the cloud will cover the following additional topics:

You can also download the complete report, “insideHPC Research Report on HPC Moves to the Cloud – What You Need to Know,” courtesy of Red Hat.