NERSCPowering Scientific Discovery Since 1974

The Manycore Revolution and Parallel Software

PGAS.jpg

Key Challenges: A new software ecosystem is expected to emerge over the next decade to support changes brought about by manycore and multicore systems.  The question is whether languages like Unified Parallel C (UPC), which runs on all of the major DOE Office of Science platforms, can provide the best path forward, lowering the barrier to entry for parallel computing and making parallel machines more attractive as commercial products.

Why it Matters: Although MPI is currently the de facto standard for programming supercomputers, partitioned global address space (PGAS) languages offer advantages in both programmability and performance. They allow more efficient one-sided communication and they directly map to shared memory features on multicore and SMP nodes. By providing a global address space, they permit application software to directly shared data when appropriate, rather partitioning and replicating.

Accomplishments: The Berkeley group has developed an optimized implementation of the basic GASNet communication layer for Petascale systems such as the Cray XT4 system (developed on Franklin) and the BlueGene architecture. On both systems the UPC implementation of some benchmarks outperforms the MPI code, with a gap that grows for larger core counts.  Highly optimized and scalable collectives have also been developed.  When the collective operations are embedded into application benchmarks performance generally meets or exceeds that of MPI.  Collaborators at Rice University have an operational prototype implementation of Co-array Fortran Language 2.0 that designed with some important new latency hiding features such as predicated asynchronous copy operation, and asynchronous collective communication primitives.

Investigators: Kathy Yelick and Paul Hargrove (LBNL); J. Mellor-Crummey, L. Adhianto, and W. Scherer III (Rice University)

More Information: See Communications of the ACM, November 2009, http://upc.lbl.gov, and Center for Scalable Application Development Software (CScADS)