AI workloads are becoming ubiquitous, including running on the world’s fastest computers — thereby changing what we call HPC forever. As every organization plans for the future, AI workloads are on our minds — how do they affect programming, software needs, hardware demands, and training needs? In the upcoming year, specialists and AI experts will continue to come together to create new and innovative solutions.
Here are the top ten ways that AI will most impact HPC in 2019.
10. Tensors: Lingua franca for AI computations
Vector algebra usage gave rise to computers designed for vector computing. Early supercomputers from Cray were vector-supercomputers, which in turn encouraged expressing applications as vector and matrix algebra problems, which in turn reinforced computers being designed to ensure vector computations run fast. This reinforcing cycle has strongly defined HPC over the years. Tensor algebra can be embraced as a generalized matrix algebra, so it is a natural evolution of supercomputer mathematical capabilities, not a revolution. Any machine supporting matrix operations can do tensors operations already. Today, users of CPUs= see support for vectors and tensors, with high performance, via support from general purpose compilers, accelerated Pythons, enhanced libraries, and optimized frameworks. All these allow software developers to use vectors and tensors from their favorite environments with high performance.
Tensors are leaving a deep mark, as vectors did before them, on HPC in hardware, software, and our thinking.
9. Languages: Higher level programming
Fortran programs dominate HPC today in terms of cycles consumed, with C and C++ programs using up almost all of the other cycles in HPC. Accelerator cycles are most often supported through C interfaces, extensions, and libraries. Attempts to disrupt this with new languages have failed because the incumbent languages have users, code, and support that fit the applications that make up HPC.
AI brings new users with new demands, which will expand what languages we associate with HPC. They will not change the activities of most physicists using Fortran code, but a data scientist using MATLAB and Python want solutions tailored to their needs.
Python, and a cast of other productivity languages and frameworks, will seemingly be the masters of more and more HPC cycles. Their secret will be that their actual number crunching routines will still be written in C/C++/Fortran, but the AI programmer will neither know that, nor care about it.
8. Freedom to think differently: Replace legacy code by using the opportunity (and peril) to rethink approaches
HPC is steeped in legacy, and AI is new and relatively legacy free. Obviously, as AI matures it will create important legacy of its own that will need supporting. For now, as the two interact – it will encourage conversations about reimplementing legacy code, which in some cases may have been overdue. The excuse might be “let’s add some AI features to this code” but the reality will be some beneficial efforts as well as some serious wastes of time. Remember the many ‘convert to Java’ efforts, in the early days of the Java craze?
Like those crazy early Java days, any rush to rewrite code into a new form will have winners and losers. ROI will be the key, but predicting the outcome of efforts to innovate are often highly flawed.
7. Portability and security: Virtualization and containers
Security and portability — “can I safely run on my machine?” and “does it work on my machine?” — are problems that virtualization and containers seek to solve. Of course, security comes from a well-constructed connection of hardware security features and software security features. For many, virtualization and containers seem to best establish that combination.
Containers have caught the attention of many developers over virtual machines, because they are viewed as more agile than virtual machines for deployment, patching, cloud versatility, and they may save on virtual machine licensing costs.
It is not surprising that talks about containers at any HPC or AI oriented conference always seem to be standing room only. The interest is there, and reality seems to be coming along to support the interest. Python and Julia, for instance, scale much better when carefully configured — something containers can help deploy.
Containers offer a natural way to give a well-tuned environment to users, and the HPC world will see more and more usage of containers in 2019, in part due to AI user interest. The HPC world here will undoubtedly stress performant instances – which require optimized eco-systems. There is plenty of fine work in this area going on in this area – the HPC community will help bring it to light for all, to satisfy this craving for containers.
6. Size Matters: Big Data
Where there is AI, there is Big Data. Much focus with the AI community is on squeezing meaning out of very large data sets using very large data models. Yes, there are enough HPC applications with big file needs, that many HPC centers already have much of the infrastructure for handling big data problems well.
All HPC centers will take big data into consideration as a major requirement for new systems, with AI workloads being a major motivation for big data requirements.
Because of the high cost of memory, we have seen the ratio of memory size to FLOP/s erode for many years. This is a trend against big data. New capabilities around persistent memory offer a hope to reverse this trend and support big data models in large machines, including HPC machines, that we obviously want and need. These new memory technologies offer expansion of main memory, as well as local storage (SSDs).
I’m writing today about how AI affects HPC, but I can’t resist pointing out that HPC’s love of visualization will have a role in HPC affecting AI. Putting data closer to the processor, which is best suited to do real data visualization, is one of the biggest ways that HPC will affect AI/ML. The concept of using and understanding big data, and visualizing the data and analysis, are very much intertwined.
5. Compute for the Masses: Cloud
AI developers may already embrace cloud computing more than HPC developers. While HPC “in the cloud” has already been emerging, high performance computing for AI applications will accelerate “HPC in the cloud.”
4. Hardware: Interactive capabilities, and focus on powering libraries and frameworks
The number of workloads for AI is not huge. This in turn means that a small number of library interfaces and frameworks dominate what any “AI accelerator” needs to tout as selling points.
Interactivity, a long-standing request that has generally stayed “on the back burner” for HPC systems, is squarely placed “front and center” by AI programmers. How quickly this changes “HPC” remains to be seen, but innovation in this area in 2019 will be notable even if scattered and somewhat hidden. Interactivity may be called “personalization” as well.
More hardware diversity, interactivity support, and additional library/framework abstractions optimized for performance, are in store for HPC to support AI workloads. The HPC community’s focus on performance, will help illuminate where additional convergence in infrastructure will benefit data center deployments as well. No one wants to give up performance if they do not have to do so, the HPC community’s expertise will help commoditize performance for AI/ML leading to even more convergence of hardware technologies between the communities.
3. Melding of people: User diversity and added excitement about HPC
AI will inject a lot of fresh talent with diverse backgrounds. AI will bring democratization to HPC at an unprecedented scale. In prior years, “democratization of HPC” is a phrase used to describe how HPC, previously accessible to only those in large organizations, has been made accessible to smaller groups of engineers and scientists. Mathematical and physics problems may have driven early supercomputing workloads, but more recently many more users have found HPC workloads to be indispensable in fields including medicine, weather forecasting, and risk management.
AI brings a much wider community of users than HPC has previously seen, bring a whole new dimension to democratization of HPC. Add AI to the list of reasons to do HPC, and we continue to add more excitement in the pursuit of the highest performance computing in the world — HPC specialists and AI experts are combining to generate excitement we can all enjoy.
2. New investments: Inferencing
Machine learning generally can be thought of as consisting of a learning phase called “training,” and a “doing” phase called inferencing. It appears that the world needs a lot more cycles doing inferencing than cycles doing training, especially as we see machine learning ubiquitously embedded into solutions all around us. Market analysts tend to estimate that the market for hardware to do inferencing is 5-10X the size of hardware to do training.
With such a large market opportunity it is no surprise that it feels like the whole world is aiming to get a bigger piece of the inferencing market. Inferencing has been implemented on processors, FPGAs, GPUs, DSPs and a plethora of custom ASICs. Power, latency, and overall cost are key factors that give us a field of options with different selling points. High performance CPUs, coupled with low latency, easily reprogrammable, and predictable latency FPGAs seem a logical choice to supplement the current CPU-dominated world of inferencing. Time will tell.
Follow the money, and you’ll see that inferencing workloads will substantially impact all of computing including HPC.
1. Melding of applications: Rather than replacing after “rethinking” – we “blend” with the best of both worlds – expanding workload diversity and seeing all manner of workload convergence
Those with vision have resoundingly proven that there are many opportunities when HPC and AI come together. Inspiring research ranges from having a neutral net learn to “act like a Monte Carlo simulation” with very good results, at a tiny fraction of the computational needs; to integrating systems to spot patterns that can predict extreme weather such, as hurricanes, into climate or weather forecasting systems. Ideas are popping up everywhere now. A generative adversarial network (GAN) is a class of machine learning systems that many hold in high regard, and GANs will no doubt help blend the HPC world and the AI/ML work.
While it is true that very few applications combine HPC algorithms and AI techniques today — based on early results in this area, it is easy for me to predict that this is the future of HPC applications, and will constitute the biggest change coming to HPC because of AI.
Making sense of these ten forces
The story of computing does not change in one sense: it’s all about what the complete system does for its users. While needs change, the fact that a complete system is made up of hardware and software does not change. It is easy to get distracted by a single technology (hardware or software); the best systems carefully apply new technology where it will help the most. I’m very partial to calling this “selective acceleration” – with an emphasis on using acceleration when it matters. I like Python acceleration (a software technology leaning on the CPU), when I use Python a lot. I like FPGA acceleration when I need lots of low latency inferencing. I don’t bother with either, when I only need a little. This is the art of building a balanced system. This top-ten list, doesn’t change the reality that balance gives the best overall result for multi-purpose machines.
Conclusion: AI will use HPC, and that will change HPC forever
It is clear that AI will use HPC, and that will change HPC forever. In fact, AI may be the biggest change agent for HPC in its history. HPC has continuously evolved as disciplines have arrived with their own workloads, and it will also evolve for AI. I do not think debating convergence vs. intersection gives enough credit to the concept that AI users will simply join the community of HPC and put their own mark on it. And they will use non-HPC systems too, just like other HPC users.
There will be custom high-performance machines designed and built primarily for AI workloads, and other machines have AI workloads run on more general high-performance facilities with non-AI workloads as well. Balanced machines will apply acceleration when it makes sense with a strong need for high-performance flexible machines. In all cases, the AI will contribute to the future definition of what makes a computer super, and therefore adjust the course of HPC forever.
James Reinders is an HPC enthusiast and author of eight books with more than 30 years of industry experience, including 27 years at Intel Corporation (retired June 2016).