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 industy updates delivered to you every week!

Wondering How AI is Doing Versus Doctors?

September 26, 2017

With all the noise around AI’s potential in medicine, you may be wondering how well it is actually performing. No one knows the real answer - for one thing it is a moving target - but the IEEE Spectrum is attempting to Read more…

By John Russell

Cray Completes ClusterStor Deal, Sunsets Sonexion Brand

September 25, 2017

Having today completed the transaction and strategic partnership with Seagate announced back in July, Cray is now home to the ClusterStor line and will be sunsetting the Sonexion brand. This is not an acquisition; the ClusterStor assets are transferring from Seagate to Cray (minus the Seagate ClusterStor IBM Spectrum Scale product) and Cray is taking over support and maintenance for the entire ClusterStor base. Read more…

By Tiffany Trader

China’s TianHe-2A will Use Proprietary Accelerator and Boast 94 Petaflops Peak

September 25, 2017

The details of China’s upgrade to TianHe-2 (MilkyWay-2) – now TianHe-2A – were revealed last week at the Third International High Performance Computing Forum (IHPCF2017) in China. The TianHe-2A will use a proprieta Read more…

By John Russell

HPE Extreme Performance Solutions

HPE Prepares Customers for Success with the HPC Software Portfolio

High performance computing (HPC) software is key to harnessing the full power of HPC environments. Development and management tools enable IT departments to streamline installation and maintenance of their systems as well as create, optimize, and run their HPC applications. Read more…

SC17 Preview: Invited Talk Lineup Includes Gordon Bell, Paul Messina and Many Others

September 25, 2017

With the addition of esteemed supercomputing pioneer Gordon Bell to its invited talk lineup, SC17 now boasts a total of 12 invited talks on its agenda. As SC explains, "Invited Talks are a premier component of the SC Read more…

By Tiffany Trader

Cray Completes ClusterStor Deal, Sunsets Sonexion Brand

September 25, 2017

Having today completed the transaction and strategic partnership with Seagate announced back in July, Cray is now home to the ClusterStor line and will be sunsetting the Sonexion brand. This is not an acquisition; the ClusterStor assets are transferring from Seagate to Cray (minus the Seagate ClusterStor IBM Spectrum Scale product) and Cray is taking over support and maintenance for the entire ClusterStor base. Read more…

By Tiffany Trader

China’s TianHe-2A will Use Proprietary Accelerator and Boast 94 Petaflops Peak

September 25, 2017

The details of China’s upgrade to TianHe-2 (MilkyWay-2) – now TianHe-2A – were revealed last week at the Third International High Performance Computing Fo Read more…

By John Russell

GlobalFoundries Puts Wind in AMD’s Sails with 12nm FinFET

September 24, 2017

From its annual tech conference last week (Sept. 20), where GlobalFoundries welcomed more than 600 semiconductor professionals (reaching the Santa Clara venue Read more…

By Tiffany Trader

Machine Learning at HPC User Forum: Drilling into Specific Use Cases

September 22, 2017

The 66th HPC User Forum held September 5-7, in Milwaukee, Wisconsin, at the elegant and historic Pfister Hotel, highlighting the 1893 Victorian décor and art o Read more…

By Arno Kolster

Stanford University and UberCloud Achieve Breakthrough in Living Heart Simulations

September 21, 2017

Cardiac arrhythmia can be an undesirable and potentially lethal side effect of drugs. During this condition, the electrical activity of the heart turns chaotic, Read more…

By Wolfgang Gentzsch, UberCloud, and Francisco Sahli, Stanford University

PNNL’s Center for Advanced Tech Evaluation Seeks Wider HPC Community Ties

September 21, 2017

Two years ago the Department of Energy established the Center for Advanced Technology Evaluation (CENATE) at Pacific Northwest National Laboratory (PNNL). CENAT Read more…

By John Russell

Exascale Computing Project Names Doug Kothe as Director

September 20, 2017

The Department of Energy’s Exascale Computing Project (ECP) has named Doug Kothe as its new director effective October 1. He replaces Paul Messina, who is stepping down after two years to return to Argonne National Laboratory. Kothe is a 32-year veteran of DOE’s National Laboratory System. Read more…

Takeaways from the Milwaukee HPC User Forum

September 19, 2017

Milwaukee’s elegant Pfister Hotel hosted approximately 100 attendees for the 66th HPC User Forum (September 5-7, 2017). In the original home city of Pabst Blu Read more…

By Merle Giles

How ‘Knights Mill’ Gets Its Deep Learning Flops

June 22, 2017

Intel, the subject of much speculation regarding the delayed, rewritten or potentially canceled “Aurora” contract (the Argonne Lab part of the CORAL “ Read more…

By Tiffany Trader

Reinders: “AVX-512 May Be a Hidden Gem” in Intel Xeon Scalable Processors

June 29, 2017

Imagine if we could use vector processing on something other than just floating point problems.  Today, GPUs and CPUs work tirelessly to accelerate algorithms Read more…

By James Reinders

NERSC Scales Scientific Deep Learning to 15 Petaflops

August 28, 2017

A collaborative effort between Intel, NERSC and Stanford has delivered the first 15-petaflops deep learning software running on HPC platforms and is, according Read more…

By Rob Farber

Oracle Layoffs Reportedly Hit SPARC and Solaris Hard

September 7, 2017

Oracle’s latest layoffs have many wondering if this is the end of the line for the SPARC processor and Solaris OS development. As reported by multiple sources Read more…

By John Russell

Six Exascale PathForward Vendors Selected; DoE Providing $258M

June 15, 2017

The much-anticipated PathForward awards for hardware R&D in support of the Exascale Computing Project were announced today with six vendors selected – AMD Read more…

By John Russell

Top500 Results: Latest List Trends and What’s in Store

June 19, 2017

Greetings from Frankfurt and the 2017 International Supercomputing Conference where the latest Top500 list has just been revealed. Although there were no major Read more…

By Tiffany Trader

IBM Clears Path to 5nm with Silicon Nanosheets

June 5, 2017

Two years since announcing the industry’s first 7nm node test chip, IBM and its research alliance partners GlobalFoundries and Samsung have developed a proces Read more…

By Tiffany Trader

Nvidia Responds to Google TPU Benchmarking

April 10, 2017

Nvidia highlights strengths of its newest GPU silicon in response to Google's report on the performance and energy advantages of its custom tensor processor. Read more…

By Tiffany Trader

Leading Solution Providers

Graphcore Readies Launch of 16nm Colossus-IPU Chip

July 20, 2017

A second $30 million funding round for U.K. AI chip developer Graphcore sets up the company to go to market with its “intelligent processing unit” (IPU) in Read more…

By Tiffany Trader

Google Releases Deeplearn.js to Further Democratize Machine Learning

August 17, 2017

Spreading the use of machine learning tools is one of the goals of Google’s PAIR (People + AI Research) initiative, which was introduced in early July. Last w Read more…

By John Russell

EU Funds 20 Million Euro ARM+FPGA Exascale Project

September 7, 2017

At the Barcelona Supercomputer Centre on Wednesday (Sept. 6), 16 partners gathered to launch the EuroEXA project, which invests €20 million over three-and-a-half years into exascale-focused research and development. Led by the Horizon 2020 program, EuroEXA picks up the banner of a triad of partner projects — ExaNeSt, EcoScale and ExaNoDe — building on their work... Read more…

By Tiffany Trader

Amazon Debuts New AMD-based GPU Instances for Graphics Acceleration

September 12, 2017

Last week Amazon Web Services (AWS) streaming service, AppStream 2.0, introduced a new GPU instance called Graphics Design intended to accelerate graphics. The Read more…

By John Russell

Cray Moves to Acquire the Seagate ClusterStor Line

July 28, 2017

This week Cray announced that it is picking up Seagate's ClusterStor HPC storage array business for an undisclosed sum. "In short we're effectively transitioning the bulk of the ClusterStor product line to Cray," said CEO Peter Ungaro. Read more…

By Tiffany Trader

Russian Researchers Claim First Quantum-Safe Blockchain

May 25, 2017

The Russian Quantum Center today announced it has overcome the threat of quantum cryptography by creating the first quantum-safe blockchain, securing cryptocurrencies like Bitcoin, along with classified government communications and other sensitive digital transfers. Read more…

By Doug Black

GlobalFoundries: 7nm Chips Coming in 2018, EUV in 2019

June 13, 2017

GlobalFoundries has formally announced that its 7nm technology is ready for customer engagement with product tape outs expected for the first half of 2018. The Read more…

By Tiffany Trader

IBM Advances Web-based Quantum Programming

September 5, 2017

IBM Research is pairing its Jupyter-based Data Science Experience notebook environment with its cloud-based quantum computer, IBM Q, in hopes of encouraging a new class of entrepreneurial user to solve intractable problems that even exceed the capabilities of the best AI systems. Read more…

By Alex Woodie

  • arrow
  • Click Here for More Headlines
  • arrow
Share This