15 Slides on Programming Aurora and Exascale Systems

By John Russell

May 7, 2020

Sometime in 2021, Aurora, the first planned U.S. exascale system, is scheduled to be fired up at Argonne National Laboratory. Cray (now HPE) and Intel are the key contractors. What will it take to create programs for Aurora and other exascale systems shortly thereafter? Last week Hal Finkel, ANL’s lead for compiler technology and programming languages, tackled this topic in his keynote at the virtual IWOCL/SYCLcon 2020.

As Finkel noted, “When I entered this field, a number of years ago, there was an ongoing debate as to whether the future of supercomputing would focus on manycore CPU-based architectures, or on architectures based on GPUs, or other kinds of computational accelerators. While the jury’s still out, in some sense, all of our upcoming systems will use GPUs. So they’ll be hot nodes, nodes with powerful CPUs that drive even more powerful GPUs.”

Heterogeneity, at least for now, is how we’ll attain exascale performance.

Hal Finkel, ANL

“It’s worth zooming in on the Aurora compute node for a moment,” said Finkel. “The GPUs are connected together using a low latency high bandwidth interconnect on node. In addition, the architecture features a unified memory subsystem, allowing memory to be addressed across both the CPU and the GPU. And this has important implications for our programming model. It means specifically and importantly that our program models will be able to focus on providing data motion capabilities for high performance use cases, while allowing the unified memory system subsystem to enable application data movement in cases where that enablement is important.”

Presented here are a handful of Finkel’s slides and comments (lightly edited and with apologies for any garbling). His hit list included parallelism, data mapping and transfer, legacy code (mostly Fortran) support, the tension between programmer freedom and compiler optimization, the rise of data parallel C++ (DPC++), Kokkos, Raja and SYCL, and much more. Finkel’s videotaped presentation and his slide deck are available at IWOCL website. It is a worthwhile, succinct overview.

Before plunging into Finkel’s comments and slides, here are his conclusions:

  • Future supercomputers will continue to advance scientific progress in a variety of domains.
  • Applications will rely on high-performance libraries as well as parallel-programming models.
  • DPC++/SYCL will be a critical programming model on future HPC platforms.
  • We will continue to understand the extent to which compiler optimizations assist the development of portably-performant applications vs. the ability to explicitly parameterize and dynamically compose the implementations of algorithms.
  • Parallel programming models will continue to evolve: support for data layouts and less-host-centric models will be explored.

Finkel began with a quick refresher on what constitutes supercomputing.

“Traditional scientific supercomputing is computing for large, tightly coupled problems. Large is important. It implies in this case, both lots of computational capability, lots of flops, you could say, with lots of high performance memory. But tightly coupled is also important. It means that the computational density has to be high, because we need to connect all the different elements with a high bandwidth, low latency network. As a result, we end up with unique architectural challenges, getting that much compute with that high of a density,” said Finkel.

“There are common algorithmic classes. [For example] there’s dense linear algebra, sparse algebra, Fast Fourier transforms, particle methods, and so on. Some of these methods are used across many different domains. And it’s important to recognize that these different methods will stress the hardware in different ways. Some demand really high Flops rates or high computational ability, some demand really high performance from the memory subsystem more than anything else, and some demand high performance from the network more than anything else.”

“Here you can see our map of upcoming systems across a variety of different laboratories within the US Department of Energy’s computing ecosystem. Aurora is the system that we’re getting, and you can see it’s being provided by Intel, and Cray, but other vendors provide other systems that are an important part of our ecosystem. Importantly, it will be a machine that is powered by Intel CPUs and GPUs, will have a larger system memory, if they are interconnected, that is used to connect all the nodes together. In addition, it will have a state of the art file system that will provide unprecedented capacity and performance to our system,” he said.

“One thing that’s important to realize is that across the various pillars of applications that we serve – traditional simulation, data analytics, and large scale machine learning – all these applications sit on top of a set of high performance libraries, in addition to compilers, supported programming models, operating systems, workflow, schedulers, operating system kernel and so on. I want to highlight quickly that the inter-node program on all of these systems, the model that’s used in order to take advantage of that high-performance network is based on a program using MPI,” said Finkel.

“MPI – message passing interface – is the model of choice for doing the inter-node programming on large scale HPC systems. But that does not address the programming of the intra-node parallelism, and especially does not address the parallelism on GPUs. I should acknowledge that a large portion of our workload is still programmed in Fortran. It’s also true that most new code development seems have shifted to other languages, mainly C++, but also Python and a variety of other choices.”

“Intel, who is providing our system, has released something that they call the OneAPI, which covers program models and high performance libraries as well as the other interface. And that’s the primary target for programming Aurora. I mentioned that a lot of the applications depend not only on parallel programming models, but also on high-performance math libraries. Intel, of course, will provide high performance math libraries for our system, featuring some of the algorithms that were on the chart I showed you at the beginning, including things like Fourier transforms and dense linear algebra and so on. In addition, libraries will be provided to support data analytics and machine learning workloads,” said Finkel.

“There are a variety of programming models that we expect people to use on exascale systems. Not all these models will be supported on all the different systems however. On the other hand, some of these models are specifically designed to be portable across systems. And it’ll be interesting to explore the extent to which these various models are and are not portable, both syntactically and performance wise.

“One of the important models that we have on the systems is OpenMP, perhaps I’ll call it the second most important model. The applications that use OpenMP vary in base programming language. They could be C or C++ or Fortran. And as I noted, it’s important that we support Fortran, and OpenMP is the primary parallelization model supported by Fortran, whereas for C and C++ code, especially C++ code, there are more options.”

“Importantly, our system is going to support data parallel C++, which is the programming model that’s based on SYCL the standard from Khronos group. There are a number of different implementations of SYCL [and] it’s possible to run SYCL on a variety of today’s CPUs and also GPUs from Nvidia and AMD. DPC++ builds on top of SYCL and adds a number of features that are quite important are programming exascale supercomputers. This includes unified memory in addition to providing support for reductions on named lambdas, which is important for being able to wrap SYCL and DPC++ using higher level abstraction layers and subgroups for getting better performance on many systems,” said Finkel.

“Just to give you a point of comparison, here’s a simple example (slide below) using OpenMP to parallelize as a kernel and execute it on a GPU. You can see here that the OpenMP syntax is not extremely simple. If you know OpenMP, you may know that it’s easy on the CPU to parallelize a loop, but you require many additional syntax elements to get OpenMP to work on a GPU. This includes data mapping clauses to handle data motion, in addition to various kinds of parallelism decomposition for the GPU itself.”

“Here’s a corresponding kernel for SYCL. You can see here that there are a number of different objects that are created. There’s a work queue that is explicit in the code, in addition to the kernel that’s being executed, being passed as a lambda, a modern C++ feature, and the use of this accessor which allows a dynamic dependency graph to be constructed and the kernel to have execution and in addition data dependencies,” said Finkel.

“I want to talk about performance portability. I think this is an important topic especially as we talk about SYCL which is designed to be a performance portable parallel programming model for a variety of different architectures. I think it’s important to understand what our experience shows in the development of performance portable application. You might think that you develop an application the following way. First, you have a science problem, then you choose the algorithms you’re going to use to solve the problem. you implement and test the algorithms, you optimize the algorithms, and in the optimization process, take advantage of the knowledge of the architecture and tools. And then when you’re done, you have a high-performance code and you run it.

“However, that doesn’t generally work. The problem is that the freedom you have to optimize the algorithms and once they’re completely fixed, is generally not sufficient in order to solve the problem with the highest possible performance. There are various trade-offs that are made when taking an algorithm and implementation, including choices of basis functions and representations, regularization schemes and solver techniques.

“These are choices that cannot be made by a compiler, at least not a compiler is operating at a C++ or Fortran level. So it’s important to understand that while the creation of performance portable applications is certainly possible, it does mean those applications tend to be highly-parameterized so that those various algorithmic choices can be exposed and used as part of the tuning process,” said Finkel

Finkel emphasized it is important to recognize the way we offer applications is changing. “If we reach back to around 2015, five years ago, and we look at parallel programs we were using on our systems, you will see that most people were parallelizing for CPUs, and they were doing so using OpenMP directly. A much smaller percentage of people were using any kind of abstraction library,” said Finkel.

“This is changing. We are seeing even greater adoption of OpenMP, but many applications are not using OpenMP directly, and abstraction libraries are gaining in popularity. At the Department of Energy we developed at least two of these, and I’ll note two explicitly. One is Raja, and the other is called Kokkos. Both of these provide abstractions around parallel execution, including on GPUs. They make use of C++ lambdas and other modern C++ features in order to provide a productive programming experience. Also, they can use OpenMP or some other compiler directive-based scheme under the hood, but are probably using an underlying programming model for each system directly to implement the backend for that system, such as DPC++ or HIP or CUDA.

“Development of those models is also influencing the development of standard C++ itself. And in C++ 17 the standard library added parallel algorithms, which you can use much in the same way as you use the regular sequential standard algorithms, but now with the ability to specify the algorithm should be executed in parallel or vectorized,” he said.

“You might think that it should be the programmer’s responsibility to directly write code that is optimal across different architectures. To some extent programmers try to do this. But it’s important to realize there are constraints. Programmers use abstraction layers to manage development across large teams of programmers and they might not be able to write optimal code directly. And the codes that I want to run in parallel and that might benefit from running together might be in separate library components. There are various kinds of optimizations that a compiler might perform on parallel constructs. It might, for instance, want to split loops or fuse them together. It might want to do the same for kernels, splitting them apart or fusing them together in order to optimize for minimization of kernel launch overhead, or to minimize register pressure, and so on.

“The fact that programs, the flow of a program is broken up across different kernels and so on can interfere with compiler optimizations the compiler would otherwise perform. Having the compiler understand parallelism enough to get a better point aliasing results inside of our kernel, based on data from the code outside of the kernel, can yield significant benefit.

“In addition, it’s important to realize that the optimization of code and kernels is not simply limited to changing loop nest structures and so on. The data layout is [also] very important. The layout of data has a large effect on the structure of the kernel and the efficiency with which data can be accessed. And as you can see here (slide below), Kokkos, which is one of the C++ abstraction libraries I mentioned earlier, provides a way of customizing the data layout in an abstract, performance portable way. This is important. The performance that you can attain using the optimal data layout can be much, much greater than the performance of using a data layout that’s tuned perhaps for a different architecture.

There’s a good deal more to Finkel’s presentation. In concluding, he emphasized the importance of high performance libraries, abstraction, parameterization.

“[In] pushing the bounds of computing technology, applications are going to rely on high-performance libraries, as well as parallel programming models in order to attain high performance on the system. DPC++ is going to be a critical program model on future HPC systems. Especially on our upcoming system, Aurora,” he said

“We will continue to understand the extent to which compiler optimizations assists the development of portably performant applications versus in some sense, the ability to explicitly parameterize and dynamically compose the implementations of algorithms. there’s a trade-off there. The more freedom you give the programmer to explicitly choose how the program executes, the less freedom you give the compiler to change it, and vice versa. It’s a fundamental trade off in the design of programming languages and libraries. Parallel program models will continue to evolve to offer data layouts, and less host centric models will be explored in the future. And I expect we’ll see significant developments.”

At a minimum Finkel’s slide deck provides a fast look at programming development directions for the coming exascale beasts.

Link to Finkel’s keynote: https://www.youtube.com/watch?time_continue=1&v=oYWAJU-berw&feature=emb_logo

Link to Finkel’s keynote slides: https://www.iwocl.org/wp-content/uploads/iwocl-syclcon-2020-finkel-keynote-slides.pdf

IWOCL / SYCLcon 2020: https://www.iwocl.org/#

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!

The Case for an Edge-Driven Future for Supercomputing

September 24, 2021

“Exascale only becomes valuable when it’s creating and using data that we care about,” said Pete Beckman, co-director of the Northwestern-Argonne Institute of Science and Engineering (NAISE), at the most recent HPC Read more…

Three Universities Team for NSF-Funded ‘ACES’ Reconfigurable Supercomputer Prototype

September 23, 2021

As Moore’s law slows, HPC developers are increasingly looking for speed gains in specialized code and specialized hardware – but this specialization, in turn, can make testing and deploying code trickier than ever. Now, researchers from Texas A&M University, the University of Illinois at Urbana... Read more…

Qubit Stream: Monte Carlo Advance, Infosys Joins the Fray, D-Wave Meeting Plans, and More

September 23, 2021

It seems the stream of quantum computing reports never ceases. This week – IonQ and Goldman Sachs tackle Monte Carlo on quantum hardware, Cambridge Quantum pushes chemistry calculations forward, D-Wave prepares for its Read more…

Asetek Announces It Is Exiting HPC to Protect Future Profitability

September 22, 2021

Liquid cooling specialist Asetek, well-known in HPC circles for its direct-to-chip cooling technology that is inside some of the fastest supercomputers in the world, announced today that it is exiting the HPC space amid multiple supply chain issues related to the pandemic. Although pandemic supply chain... Read more…

TACC Supercomputer Delves Into Protein Interactions

September 22, 2021

Adenosine triphosphate (ATP) is a compound used to funnel energy from mitochondria to other parts of the cell, enabling energy-driven functions like muscle contractions. For ATP to flow, though, the interaction between the hexokinase-II (HKII) enzyme and the proteins found in a specific channel on the mitochondria’s outer membrane. Now, simulations conducted on supercomputers at the Texas Advanced Computing Center (TACC) have simulated... Read more…

AWS Solution Channel

Introducing AWS ParallelCluster 3

Running HPC workloads, like computational fluid dynamics (CFD), molecular dynamics, or weather forecasting typically involves a lot of moving parts. You need a hundreds or thousands of compute cores, a job scheduler for keeping them fed, a shared file system that’s tuned for throughput or IOPS (or both), loads of libraries, a fast network, and a head node to make sense of all this. Read more…

The Latest MLPerf Inference Results: Nvidia GPUs Hold Sway but Here Come CPUs and Intel

September 22, 2021

The latest round of MLPerf inference benchmark (v 1.1) results was released today and Nvidia again dominated, sweeping the top spots in the closed (apples-to-apples) datacenter and edge categories. Perhaps more interesti Read more…

The Case for an Edge-Driven Future for Supercomputing

September 24, 2021

“Exascale only becomes valuable when it’s creating and using data that we care about,” said Pete Beckman, co-director of the Northwestern-Argonne Institut Read more…

Three Universities Team for NSF-Funded ‘ACES’ Reconfigurable Supercomputer Prototype

September 23, 2021

As Moore’s law slows, HPC developers are increasingly looking for speed gains in specialized code and specialized hardware – but this specialization, in turn, can make testing and deploying code trickier than ever. Now, researchers from Texas A&M University, the University of Illinois at Urbana... Read more…

Qubit Stream: Monte Carlo Advance, Infosys Joins the Fray, D-Wave Meeting Plans, and More

September 23, 2021

It seems the stream of quantum computing reports never ceases. This week – IonQ and Goldman Sachs tackle Monte Carlo on quantum hardware, Cambridge Quantum pu Read more…

Asetek Announces It Is Exiting HPC to Protect Future Profitability

September 22, 2021

Liquid cooling specialist Asetek, well-known in HPC circles for its direct-to-chip cooling technology that is inside some of the fastest supercomputers in the world, announced today that it is exiting the HPC space amid multiple supply chain issues related to the pandemic. Although pandemic supply chain... Read more…

TACC Supercomputer Delves Into Protein Interactions

September 22, 2021

Adenosine triphosphate (ATP) is a compound used to funnel energy from mitochondria to other parts of the cell, enabling energy-driven functions like muscle contractions. For ATP to flow, though, the interaction between the hexokinase-II (HKII) enzyme and the proteins found in a specific channel on the mitochondria’s outer membrane. Now, simulations conducted on supercomputers at the Texas Advanced Computing Center (TACC) have simulated... Read more…

The Latest MLPerf Inference Results: Nvidia GPUs Hold Sway but Here Come CPUs and Intel

September 22, 2021

The latest round of MLPerf inference benchmark (v 1.1) results was released today and Nvidia again dominated, sweeping the top spots in the closed (apples-to-ap Read more…

Why HPC Storage Matters More Now Than Ever: Analyst Q&A

September 17, 2021

With soaring data volumes and insatiable computing driving nearly every facet of economic, social and scientific progress, data storage is seizing the spotlight. Hyperion Research analyst and noted storage expert Mark Nossokoff looks at key storage trends in the context of the evolving HPC (and AI) landscape... Read more…

GigaIO Gets $14.7M in Series B Funding to Expand Its Composable Fabric Technology to Customers

September 16, 2021

Just before the COVID-19 pandemic began in March 2020, GigaIO introduced its Universal Composable Fabric technology, which allows enterprises to bring together Read more…

Ahead of ‘Dojo,’ Tesla Reveals Its Massive Precursor Supercomputer

June 22, 2021

In spring 2019, Tesla made cryptic reference to a project called Dojo, a “super-powerful training computer” for video data processing. Then, in summer 2020, Tesla CEO Elon Musk tweeted: “Tesla is developing a [neural network] training computer called Dojo to process truly vast amounts of video data. It’s a beast! … A truly useful exaflop at de facto FP32.” Read more…

Enter Dojo: Tesla Reveals Design for Modular Supercomputer & D1 Chip

August 20, 2021

Two months ago, Tesla revealed a massive GPU cluster that it said was “roughly the number five supercomputer in the world,” and which was just a precursor to Tesla’s real supercomputing moonshot: the long-rumored, little-detailed Dojo system. “We’ve been scaling our neural network training compute dramatically over the last few years,” said Milan Kovac, Tesla’s director of autopilot engineering. Read more…

Esperanto, Silicon in Hand, Champions the Efficiency of Its 1,092-Core RISC-V Chip

August 27, 2021

Esperanto Technologies made waves last December when it announced ET-SoC-1, a new RISC-V-based chip aimed at machine learning that packed nearly 1,100 cores onto a package small enough to fit six times over on a single PCIe card. Now, Esperanto is back, silicon in-hand and taking aim... Read more…

CentOS Replacement Rocky Linux Is Now in GA and Under Independent Control

June 21, 2021

The Rocky Enterprise Software Foundation (RESF) is announcing the general availability of Rocky Linux, release 8.4, designed as a drop-in replacement for the soon-to-be discontinued CentOS. The GA release is launching six-and-a-half months after Red Hat deprecated its support for the widely popular, free CentOS server operating system. The Rocky Linux development effort... Read more…

Intel Completes LLVM Adoption; Will End Updates to Classic C/C++ Compilers in Future

August 10, 2021

Intel reported in a blog this week that its adoption of the open source LLVM architecture for Intel’s C/C++ compiler is complete. The transition is part of In Read more…

Hot Chips: Here Come the DPUs and IPUs from Arm, Nvidia and Intel

August 25, 2021

The emergence of data processing units (DPU) and infrastructure processing units (IPU) as potentially important pieces in cloud and datacenter architectures was Read more…

AMD-Xilinx Deal Gains UK, EU Approvals — China’s Decision Still Pending

July 1, 2021

AMD’s planned acquisition of FPGA maker Xilinx is now in the hands of Chinese regulators after needed antitrust approvals for the $35 billion deal were receiv Read more…

Google Launches TPU v4 AI Chips

May 20, 2021

Google CEO Sundar Pichai spoke for only one minute and 42 seconds about the company’s latest TPU v4 Tensor Processing Units during his keynote at the Google I Read more…

Leading Solution Providers

Contributors

HPE Wins $2B GreenLake HPC-as-a-Service Deal with NSA

September 1, 2021

In the heated, oft-contentious, government IT space, HPE has won a massive $2 billion contract to provide HPC and AI services to the United States’ National Security Agency (NSA). Following on the heels of the now-canceled $10 billion JEDI contract (reissued as JWCC) and a $10 billion... Read more…

10nm, 7nm, 5nm…. Should the Chip Nanometer Metric Be Replaced?

June 1, 2020

The biggest cool factor in server chips is the nanometer. AMD beating Intel to a CPU built on a 7nm process node* – with 5nm and 3nm on the way – has been i Read more…

Julia Update: Adoption Keeps Climbing; Is It a Python Challenger?

January 13, 2021

The rapid adoption of Julia, the open source, high level programing language with roots at MIT, shows no sign of slowing according to data from Julialang.org. I Read more…

Quantum Roundup: IBM, Rigetti, Phasecraft, Oxford QC, China, and More

July 13, 2021

IBM yesterday announced a proof for a quantum ML algorithm. A week ago, it unveiled a new topology for its quantum processors. Last Friday, the Technical Univer Read more…

Intel Launches 10nm ‘Ice Lake’ Datacenter CPU with Up to 40 Cores

April 6, 2021

The wait is over. Today Intel officially launched its 10nm datacenter CPU, the third-generation Intel Xeon Scalable processor, codenamed Ice Lake. With up to 40 Read more…

Frontier to Meet 20MW Exascale Power Target Set by DARPA in 2008

July 14, 2021

After more than a decade of planning, the United States’ first exascale computer, Frontier, is set to arrive at Oak Ridge National Laboratory (ORNL) later this year. Crossing this “1,000x” horizon required overcoming four major challenges: power demand, reliability, extreme parallelism and data movement. Read more…

Intel Unveils New Node Names; Sapphire Rapids Is Now an ‘Intel 7’ CPU

July 27, 2021

What's a preeminent chip company to do when its process node technology lags the competition by (roughly) one generation, but outmoded naming conventions make it seem like it's two nodes behind? For Intel, the response was to change how it refers to its nodes with the aim of better reflecting its positioning within the leadership semiconductor manufacturing space. Intel revealed its new node nomenclature, and... Read more…

Latest MLPerf Results: Nvidia Shines but Intel, Graphcore, Google Increase Their Presence

June 30, 2021

While Nvidia (again) dominated the latest round of MLPerf training benchmark results, the range of participants expanded. Notably, Google’s forthcoming TPU v4 Read more…

  • arrow
  • Click Here for More Headlines
  • arrow
HPCwire