Cray Unveils Its First GPU Supercomputer
Cray has released the details of its GPU-equipped supercomputer: the XK6. The machine is a derivative of the XE6, an AMD Opteron-based machine that the company announced a year ago. Although Cray is calling this week’s announcement the XK6 launch, systems will not be available until the second half of the year.
Cray’s pitch for the XK6 is that it enables applications to be productive with GPUs at scale. According to Barry Bolding, vice president of Cray’s products division, they are unique in the GPU computing space because of their long-term commitment to heterogeneous computing and their track record for building productive petascale systems. In addition, he points out that Cray has a legacy of experience with vector-based supercomputing and their associated compilers, most recently with their X2 super, aka “Black Widow.”
Hardware-wise, though, the XK6 is not that different from its CPU-based brethren. The blade is basically a variant of the XE6, replacing four of the eight AMD Opteron sockets with NVIDIA Tesla GPU modules. Each four-node blade consists of two Gemini interconnect chips, four Opteron CPUs, and four NVIDIA Tesla 20-series GPUs. The Tesla in this case is the X2090, a compact form factor of the M2090 module that was introduced last week. Like the M2090, the X2090 sports a 665 gigaflop (double precision) GPU, 6 GB of GDDR5, and 178 GB/second of memory bandwidth. A XK6 cabinet can house up to 24 blades (96 nodes), which will deliver something in the neighborhood of 70 teraflops.
Each XK6 node in the blade pairs a single X2090 GPU with an AMD Interlagos CPU (Opteron 6200), along with 16 or 32 GB of 1600 MHz DDR3 memory. That’s a rather CPU-rich configuration for a GPU-based server, given that many commodity clusters use two, four, or even eight graphics devices per x86 processor. And in many cases those processors are not top-of-the-line Xeons or Opterons.
According to Bolding, their thinking here is that not all supercomputing workloads are able to take maximum advantage of the GPU’s capability, so they’ve opted for a fairly conservative processor mix. “We really envision some applications spending a considerable amount of time running on just the x86 portion of the system,” he told HPCwire. “So we really want to have a balance between scalar and accelerator.”
On the other hand, some customers are likely to have applications that are already highly tuned for GPUs, and in this case would want a system with a higher GPU:CPU ratio. Bolding says, for those users they are willing to build custom machines with a richer GPU configuration, but it would not be the standard XK6 and would entail more than just a tweak to those blades.
Besides the hardware, the XK6 will inherit software stack and programming environment from the XE6, including the Cray Linux Environment (CLE). Added on top will be GPU-specific libraries and tools like NVIDIA’s CUDA SDK for programming the Tesla components. GPU support will also be provided by some of the third-party software that Cray currently resells, like the PGI compilers. The PGI compiler suite has already been extended to generate code for GPUs, and is being integrated and tested with the XK6 . The CAPS enterprise HMPP product for GPUs is also available, but unlike PGI is not currently part of XK6 test suite, and is not being resold by Cray.
Cray also will be developing additional GPU compilers, runtime libraries, and tools, as well as bringing in third-party software, such as EM Photonics’ CULA library, to make the environment richer and more productive. The idea here is to bring GPU acceleration in line with its Adaptive Supercomputing approach. The ultimate goal is to be able to write source code that could automatically be transformed to run on either CPUs, GPUs or some mix of the two. The goal is not just to deliver performance, says Bolding, but to “get your codes to better performance faster.”
To propel that vision, Cray is developing its own OpenMP-based compiler that will be targeted for GPU acceleration. This is a higher-level programming model than CUDA, using special directives within the application source to generate GPU code, much like what is available from PGI today. Unlike that offering however, the OpenMP version from Cray is based on standardized OpenMP directives designed to address hardware accelerators. A pre-production version will be available to selected customers, says Bolding, and will support both Fortran and C.
The directives-based programming tools for GPUs is a key part of Cray’s strategy to turn the XK6 into a productive GPU machine, and an attempt to differentiate it from the current crop of GPU-equipped clusters. Bolding says they expect to get the majority of performance available from lower level programming environments like CUDA, but in a much more productive and portable environment. And even though Cray is developing an OpenMP compiler, their overarching goal is to provide a standard, high-level programming environment that is portable across accelerators. “We really believe that a good programming model has to be hardware independent,” said Bolding.
The whole idea of GPUs in supercomputers, of course, is to accelerate codes amenable to data parallelism. One application set Cray envisions for these supers is weather and climate modeling, an area the company has been particularly successful in. For weather prediction, code acceleration can be especially critical, given the requirement is to deliver accurate results in real time. And for this application, model accuracy is directly related to floating point horsepower.
For example, it is estimated that for a weather forecasting model with a horizontal grid granularity of 40 km, one would need 0.4 petaflops. But to refine that granularity to 10 km, one would need a 20 petaflop system. The floating point requirements are similar for providing greater levels of granularity in climate simulations, but without the need to deliver results in real-time. Although these codes scale well enough on CPUs, the prospect of buying a system with 50 times as many processors to deliver more accurate results is daunting from both an upfront cost basis and the ongoing expense of powering such a system.
Today, the most feasible way to accomplish this level of performance boost is with accelerators. Not that GPUs are particularly cheap. An X2090 is likely to be four to five times as expensive as a top-of-the-line Opteron. But since a 20-series Tesla delivers about 10 times the raw floating point performance at only about twice the power consumption, a GPU solution makes sense as long as the codes can extract those extra FLOPS.
Once you’ve made the initial outlay, though, the XK6 is relatively easy to upgrade. According to Bolding, the next-generation GPUs, such as the future Kepler parts, will be able to be inserted into existing machines with just a module swap on the blade. Once those next-gen GPUs are available, Cray estimates these supercomputers will be able to scale up to 50 peak petaflops.
Also, one doesn’t have to build a pure XK6 machine. The GPU blades can be mixed into existing XE6 configurations, which themselves can be constructed from the older XT6 systems via the insertion of the Gemini interconnect.
Cray’s first XK6 order represents such an upgrade. The Swiss National Supercomputing Centre (CSCS) will use their existing XE6m system as the foundation for a multi-cabinet Cray XK6. The system is to be used to support scientific research in weather forecasting, climatology, chemistry, physics, material sciences, geology, biology, genetics, experimental medicine, astronomy, mathematics and computer sciences.
For the Swiss or anyone else to experience all this GPU goodness, they will have to wait for at least a few months. While the availability of the X2090 coincides with that of the M2090 announced last week, AMD’s Opteron 6200 isn’t expected to hit the streets until Q3. Whether Cray has other dependencies associated with availability, Bolding wouldn’t say.
Cray, of course, could have constructed a GPU machine last year based on the Magny-Cours CPU (Opteron 6100) and X2070 GPU. HP, IBM, SGI, and practically every other HPC cluster vendor came up with a GPU offering in 2010. But according to Bolding, the XK6 is a more thought-out approach and will be the more productive machine.
“We could have come out with something earlier that wasn’t a complete Cray product, in other words, just a bunch of hardware and a mish-mash of open source software, but we chose not to,” he said. ”Our best mapping of a complete HPC product to the market aligned with the current Cray XK6 timeframe.”
“We’re not first to the party here, but we’re hoping we’re the best dancer,” he added.