Challenges Ahead for HPC Applications in the Cloud

By Dr. Mohamed Ahmed

August 16, 2010

High performance computing is known for its ability to accelerate scientific experiments and discovery through modeling and simulation. The complexity of the mathematical models and huge amounts of data that must be processed in a short time mandates the use of high throughput hardware infrastructure and optimized software stack. HPC applications very quickly consume processing power, memory, storage, and network bandwidth for a relatively short time. Other distributed systems utilize the aggregated power of the cluster but do not necessary utilize all available resources as aggressively in such a short amount of time as HPC applications do.

In essence, this is why cloud services and infrastructure may make a perfect sense to most businesses. It is expected that 80% of the general purpose applications will be hosted in clouds by year 2020. However, for HPC, there needs to be a deeper analysis of how HPC users can make use of cloud architectures.

So, the main objective of cloud computing is to allow end users to plug their applications into virtual machines in a manner quite similar to hosting them on physically dedicated machines. Users should be able to access and manage this infrastructure exactly the same way they would if they had the physical machines on-premises.

In HPC, applications are developed to deal with large numbers of compute nodes, with relatively large memories and huge storage capacities. Keep in mind that cloud services can be provided at two levels: (1) cloud infrastructure, or (2) cloud-hosted Applications. The first type targets advanced users who would like to utilize cloud infrastructure to build their own proprietary software serving their specific needs. The second type targets users who would like to use readymade applications running on top of the cloud infrastructure without digging into the details of the virtualized resources exposed by the cloud, such as storage, processing, interconnection, etc.

In this article I will be focusing mainly on the virtualization of cloud infrastructure and usage pattern of its recourses. I’ll briefly touch upon possible HPC applications that can be offered through cloud Infrastructure and characterize their utilization of resources in such infrastructure.

Before digging into how the cloud infrastructure can expose it services to HPC users, let’s focus first on the building unit: a virtualized node. Node virtualization is not a straight forward task for HPC usage patterns. Let me go with you through the possible usage patterns. It may appear as a low level analysis, but I think this will give us a deeper understanding of what is actually required to build HPC in the cloud.

I’ll be discussing processing, memory, storage, and network usage patterns. I’ll try to uncover also some of the overall required policies and mechanism for resources management and scheduling. This is very critical aspect in providing the appropriate services to HPC users through the cloud.

Processing Patterns
 
HPC applications are, to a great extent, scientific algorithms focusing on simulating mathematical models in earth science, chemistry, physics, etc. In addition to the main objective of utilizing the aggregated processing power of large HPC clusters, these applications focus also on utilizing micro resources inside each processor, especially with multi-core processors. Utilizing multi-threading for a fine-grained parallelism is a very critical component in speeding up these applications. Also, these applications utilize even more specific processor features such as the pipeline organization, branch prediction, and instructions prefetching to speedup execution.

The other family of HPC applications is based on combinatorial algorithms, such as graph traversal, sorting, and string matching. These algorithms utilize basically integer units inside the microprocessor. However, they still utilize multi-threading capabilities inside each compute node to speedup execution.

In general purpose and business-oriented applications, multi-threaded models might be utilized. However, multi-threaded models are deployed to serve high level requests, such as different database transactions in order to gain execution speedup. Threads can be easily mapped to virtual processors and scheduled by the OS to the physical processors.

It is quite challenging to manage virtualization of processors if accelerators are provided in the cloud, such as the Cell processor or GPGPUs. Each process may utilize one or more GPUs to accelerate some compute intensive parts, or kernels. The question is: how can we virtualize and schedule these accelerators? Are they going to accessible directly through hosted applications? Or a lightweight virtualization mechanism responsible mainly for scheduling and accounting the accelerators? Some research efforts such as GViM and GFusion are actively working on the area of accelerators virtualization.

Memory

Most HPC applications swing between memory intensity and arithmetic intensity. The more floating point operations (flops) required per one byte accessed from system’s main memory, the higher the application’s arithmetic intensity, and vice versa. The key here is not only the amount of memory required in a single virtualized node. It is also about the usage patterns related to processing requirements. HPC applications usually use memory in a very demanding pattern. The better the algorithm is designed, the peak bandwidth is maintained most of the algorithm’s execution life time.

Furthermore, as arithmetic intensity decreases,more pressure is added over the memory system. The processor is spending less time computing and more time moving data to or from system’s memory. Also, advanced HPC developers often times consider physical properties of the memory system to maximize bandwidth, such as number of banks, size of memory controller buffer, latency, maximum bandwidth, etc.

I think standard virtualization abstracts all these hardware properties and consider the standard memory usage pattern, i.e. small requests that do not form stream of data movement. I also believe that some good research in the area of memory abstraction can be done. Hypervisors need to consider multiplexing the physical memory in a way that would maintain most of its physical properties. This should give more space for memory performance optimization.   

Storage

HPC applications need two types of permanent storage: (1) I/O, and (2) Scratch storage. The first type stores the input data and final execution output, such as the FFT points, input matrixes, etc. The second storage type is basically used for storing intermediate results, check-pointing or for volatile input sets.  I/O storage needs to be stored in a centralized place so that all threads or processes in a cluster can have unconditional access to it.  I/O reads or writes take place in bursts. All processes read input data sets almost at the same time and write output also concurrently, assuming good load balancing. This mandates storage devices with very high bandwidth to satisfy many requests at the same time. From my observations, most HPC applications ask for relatively large chunks of data in every I/O attempt, which would reduce the effect of read or write latency on these devices.

I see most cloud systems provide the conventional physically centralized storage devices connected to a high speed interconnection. This architecture might be a good one if the whole HPC system is working on a single problem at a given time. However, if multiple applications are using resources through a cloud, this physical architecture may need to be rethought. Distributed rack-aware file systems, such as Hadoop Distributed File System (HDFS), might be a very good option in some cases. Building multiple storage devices and attaching each one to a few racks or a cabinet is another excellent option. It will match the HPC applications utilizing the cloud architecture; each application will use one or few racks. It makes sense to place storage near the processors. I think possibilities are many and may need a separate article, so I will come back to that later.

The scratch storage by default should be local to each processor. Most HPC architectures provide such scratch storage spaces. Each rack would have one or more hard disks to quickly store and retrieve scratch data. This scratch data is volatile and usually get erased when application execution ends. I think the best reconsideration is replace these hard disks with the new SSD to save power and speed up execution since accessing them might be quite frequent.

Networking

Using the cloud model, there are three sources of network traffic: (1) Remote user communication, (2) I/O, and (3) Inter-process communication. Remote user communication takes place when large data sets are being sent or received from a remote site. End user usually prepares the input or retrieves the results. It can be optimized again by distributing storage to different NAS devices. However, utilizing systems such as Hadoop Distributed File System (HDFS) may not be the optimum solution if users are reading and writing large chunks of data in most of their HPC applications. 

This architecture will overload the internal interconnection and compute nodes as well. Inter-processor communication, on the other hand, is characterized by high frequency and small data chunks. Latency in this case is a very important factor. In addition to low latency networking equipment, this bottleneck can be easily avoided by placing virtual nodes as close as possible to each other, on the same physical node if possible.

Thus far, I have tried to pinpoint some of the qualitative aspects of resources usage patterns. Scheduling and virtualizing resources same way done for general purpose applications, I think will produce disappointing results. Cloud infrastructure is still lucrative if comparing its economics to building in-house HPC machines. However, cloud for HPC has to be efficient enough to reach proper performance ceilings without disappointing customers who probably experienced at a certain point to run their HPC applications on dedicated machines.

Subsequent articles, which will be featured here as part of a continued series, will discuss some of my findings in characterizing resources usage of specific HPC applications, such as BLAST, DGEMM, FFT, etc., using the cloud infrastructure. 

About the Author

Mohamed Ahmed is an assistant professor at the department of computer science and engineering of the American University in Cairo (AUC). He got his BS and MSc from the AUC. He received his PhD from the University Of Connecticut (UCONN). During his masters he was one of the early researchers who built a component-based operating system using object oriented technologies.  He decided to move to the wild world of high performance computing (HPC) working in different sub-domains, such as performance engineering, HPC applications, and cloud computing for HPC systems.

Dr. Mohamed has one provisional patent and several peer-reviewed publications in operating systems engineering, reliability, threading models, and programming models. Dr. Mohamed’s research interests basically fall under HPC. His current focus is in utilizing multi-/many-core microprocessors in massively parallel systems. One of his objectives is to make HPC systems available for both researchers in other science domains and industry in a faction of current cost of HPC infrastructure and ready to use in a very short time. He is currently working on porting applications and algorithms for biology, material sciences, and computational chemistry to new compute acceleration architectures such as GPGPUs.

For more, please see:
 
– http://www.cse.aucegypt.edu/~mahmed/

– http://MohamedFAhmed.wordpress.com/

Subscribe to HPCwire's Weekly Update!

Be the most informed person in the room! Stay ahead of the tech trends with industry updates delivered to you every week!

MLPerf Inference 4.0 Results Showcase GenAI; Nvidia Still Dominates

March 28, 2024

There were no startling surprises in the latest MLPerf Inference benchmark (4.0) results released yesterday. Two new workloads — Llama 2 and Stable Diffusion XL — were added to the benchmark suite as MLPerf continues Read more…

Q&A with Nvidia’s Chief of DGX Systems on the DGX-GB200 Rack-scale System

March 27, 2024

Pictures of Nvidia's new flagship mega-server, the DGX GB200, on the GTC show floor got favorable reactions on social media for the sheer amount of computing power it brings to artificial intelligence.  Nvidia's DGX Read more…

Call for Participation in Workshop on Potential NSF CISE Quantum Initiative

March 26, 2024

Editor’s Note: Next month there will be a workshop to discuss what a quantum initiative led by NSF’s Computer, Information Science and Engineering (CISE) directorate could entail. The details are posted below in a Ca Read more…

Waseda U. Researchers Reports New Quantum Algorithm for Speeding Optimization

March 25, 2024

Optimization problems cover a wide range of applications and are often cited as good candidates for quantum computing. However, the execution time for constrained combinatorial optimization applications on quantum device Read more…

NVLink: Faster Interconnects and Switches to Help Relieve Data Bottlenecks

March 25, 2024

Nvidia’s new Blackwell architecture may have stolen the show this week at the GPU Technology Conference in San Jose, California. But an emerging bottleneck at the network layer threatens to make bigger and brawnier pro Read more…

Who is David Blackwell?

March 22, 2024

During GTC24, co-founder and president of NVIDIA Jensen Huang unveiled the Blackwell GPU. This GPU itself is heavily optimized for AI work, boasting 192GB of HBM3E memory as well as the the ability to train 1 trillion pa Read more…

MLPerf Inference 4.0 Results Showcase GenAI; Nvidia Still Dominates

March 28, 2024

There were no startling surprises in the latest MLPerf Inference benchmark (4.0) results released yesterday. Two new workloads — Llama 2 and Stable Diffusion Read more…

Q&A with Nvidia’s Chief of DGX Systems on the DGX-GB200 Rack-scale System

March 27, 2024

Pictures of Nvidia's new flagship mega-server, the DGX GB200, on the GTC show floor got favorable reactions on social media for the sheer amount of computing po Read more…

NVLink: Faster Interconnects and Switches to Help Relieve Data Bottlenecks

March 25, 2024

Nvidia’s new Blackwell architecture may have stolen the show this week at the GPU Technology Conference in San Jose, California. But an emerging bottleneck at Read more…

Who is David Blackwell?

March 22, 2024

During GTC24, co-founder and president of NVIDIA Jensen Huang unveiled the Blackwell GPU. This GPU itself is heavily optimized for AI work, boasting 192GB of HB Read more…

Nvidia Looks to Accelerate GenAI Adoption with NIM

March 19, 2024

Today at the GPU Technology Conference, Nvidia launched a new offering aimed at helping customers quickly deploy their generative AI applications in a secure, s Read more…

The Generative AI Future Is Now, Nvidia’s Huang Says

March 19, 2024

We are in the early days of a transformative shift in how business gets done thanks to the advent of generative AI, according to Nvidia CEO and cofounder Jensen Read more…

Nvidia’s New Blackwell GPU Can Train AI Models with Trillions of Parameters

March 18, 2024

Nvidia's latest and fastest GPU, codenamed Blackwell, is here and will underpin the company's AI plans this year. The chip offers performance improvements from Read more…

Nvidia Showcases Quantum Cloud, Expanding Quantum Portfolio at GTC24

March 18, 2024

Nvidia’s barrage of quantum news at GTC24 this week includes new products, signature collaborations, and a new Nvidia Quantum Cloud for quantum developers. Wh Read more…

Alibaba Shuts Down its Quantum Computing Effort

November 30, 2023

In case you missed it, China’s e-commerce giant Alibaba has shut down its quantum computing research effort. It’s not entirely clear what drove the change. Read more…

Nvidia H100: Are 550,000 GPUs Enough for This Year?

August 17, 2023

The GPU Squeeze continues to place a premium on Nvidia H100 GPUs. In a recent Financial Times article, Nvidia reports that it expects to ship 550,000 of its lat Read more…

Shutterstock 1285747942

AMD’s Horsepower-packed MI300X GPU Beats Nvidia’s Upcoming H200

December 7, 2023

AMD and Nvidia are locked in an AI performance battle – much like the gaming GPU performance clash the companies have waged for decades. AMD has claimed it Read more…

DoD Takes a Long View of Quantum Computing

December 19, 2023

Given the large sums tied to expensive weapon systems – think $100-million-plus per F-35 fighter – it’s easy to forget the U.S. Department of Defense is a Read more…

Synopsys Eats Ansys: Does HPC Get Indigestion?

February 8, 2024

Recently, it was announced that Synopsys is buying HPC tool developer Ansys. Started in Pittsburgh, Pa., in 1970 as Swanson Analysis Systems, Inc. (SASI) by John Swanson (and eventually renamed), Ansys serves the CAE (Computer Aided Engineering)/multiphysics engineering simulation market. Read more…

Choosing the Right GPU for LLM Inference and Training

December 11, 2023

Accelerating the training and inference processes of deep learning models is crucial for unleashing their true potential and NVIDIA GPUs have emerged as a game- Read more…

Intel’s Server and PC Chip Development Will Blur After 2025

January 15, 2024

Intel's dealing with much more than chip rivals breathing down its neck; it is simultaneously integrating a bevy of new technologies such as chiplets, artificia Read more…

Baidu Exits Quantum, Closely Following Alibaba’s Earlier Move

January 5, 2024

Reuters reported this week that Baidu, China’s giant e-commerce and services provider, is exiting the quantum computing development arena. Reuters reported � Read more…

Leading Solution Providers

Contributors

Comparing NVIDIA A100 and NVIDIA L40S: Which GPU is Ideal for AI and Graphics-Intensive Workloads?

October 30, 2023

With long lead times for the NVIDIA H100 and A100 GPUs, many organizations are looking at the new NVIDIA L40S GPU, which it’s a new GPU optimized for AI and g Read more…

Shutterstock 1179408610

Google Addresses the Mysteries of Its Hypercomputer 

December 28, 2023

When Google launched its Hypercomputer earlier this month (December 2023), the first reaction was, "Say what?" It turns out that the Hypercomputer is Google's t Read more…

AMD MI3000A

How AMD May Get Across the CUDA Moat

October 5, 2023

When discussing GenAI, the term "GPU" almost always enters the conversation and the topic often moves toward performance and access. Interestingly, the word "GPU" is assumed to mean "Nvidia" products. (As an aside, the popular Nvidia hardware used in GenAI are not technically... Read more…

Shutterstock 1606064203

Meta’s Zuckerberg Puts Its AI Future in the Hands of 600,000 GPUs

January 25, 2024

In under two minutes, Meta's CEO, Mark Zuckerberg, laid out the company's AI plans, which included a plan to build an artificial intelligence system with the eq Read more…

Google Introduces ‘Hypercomputer’ to Its AI Infrastructure

December 11, 2023

Google ran out of monikers to describe its new AI system released on December 7. Supercomputer perhaps wasn't an apt description, so it settled on Hypercomputer Read more…

China Is All In on a RISC-V Future

January 8, 2024

The state of RISC-V in China was discussed in a recent report released by the Jamestown Foundation, a Washington, D.C.-based think tank. The report, entitled "E Read more…

Intel Won’t Have a Xeon Max Chip with New Emerald Rapids CPU

December 14, 2023

As expected, Intel officially announced its 5th generation Xeon server chips codenamed Emerald Rapids at an event in New York City, where the focus was really o Read more…

IBM Quantum Summit: Two New QPUs, Upgraded Qiskit, 10-year Roadmap and More

December 4, 2023

IBM kicks off its annual Quantum Summit today and will announce a broad range of advances including its much-anticipated 1121-qubit Condor QPU, a smaller 133-qu Read more…

  • arrow
  • Click Here for More Headlines
  • arrow
HPCwire