August 11, 2011

Programming Hopper

Nicole Hemsoth

NERSC director Kathy Yelick shares insights on programming petascale systems like the Hopper system.

This week Kathy Yelick appeared on Intel’s Parallel Computing Talk to discuss the 1.3 petaflop Hopper system at NERSC and to share insights about the programming challenges inherent to petascale and future exascale systems.
Yelick is a professor at the University of California Berkeley, serves as the director of NERSC and is the associate lab director at Lawrence Berkeley National Laboratory. Most of her career has been spent working with parallel programming research projects, compilers, libraries and beyond. At LBNL she has also played a significant role in the high performance cloud computing testbed, Magellan.

Hopper, the research center’s Cray XE6 system, has been tasked with solving a number of problems related to energy use, consumption, and efficiency as well as specific relevant application areas in chemistry, physics and biology. Yelick pointed to a number of noteworthy projects making use of the system, including the 21st Century Reanalysis project, which examines a century of climate conditions and reconstructs these environments to understand and reproduce weather events.

During the interview below (beginning around the 8-minute mark in the video) Yelick gives a thorough overview of the problems that are well-suited for petascale systems and discusses programming Hopper. She says that with around 150 thousand cores, the most popular programming model is a flat MPI model. The system makes use of AMD’s 12-core Magny Cours processors and 2-socket nodes that make 24 cores available within a shared memory space. This allows users to write programs that use some kind of message passing model between different nodes, then threads or OpenMP in the node.

Yelick claims the trend for Hopper is achieve maximum performance by using shared memory directly. The motivation behind this from the user’s standpoint is that the memory footprint is much smaller for a computation that uses threads of some kind. She says that this is important because users are limited by memory in terms of the size of their problems; they want to run a larger problem on the same hardware, thus the choice for a hybrid programming model that uses both MPI and OpenMP.

Share This