NERSCPowering Scientific Discovery Since 1974

Intro to PGAS (UPC and CAF) and Hybrid for Multicore Programming

Monday, Nov. 12

Alice Koniges - NERSC / Lawrence Berkeley National Laboratory

Katherine Yelick - NERSC / Lawrence Berkeley National Laboratory

Rolf Rabenseifner - High Performance Computing Center Stuttgart

Reinhold Bader - Leibniz Supercomputing Centre

David Eder - Lawrence Livermore National Laboratory



PGAS (Partitioned Global Address Space) languages offer both an alternative to traditional parallelization approaches (MPI and OpenMP), and the possibility of being combined with MPI for a multicore hybrid programming model. In this tutorial we cover PGAS concepts and two commonly used PGAS languages, Coarray Fortran (CAF, as specified in the Fortran standard) and the extension to the C standard, Unified Parallel C (UPC). Hands-on exercises to illustrate important concepts are interspersed with the lectures. Attendees will be paired in groups of two to accommodate attendees without laptops. Basic PGAS features, syntax for data distribution, intrinsic functions and synchronization primitives are discussed. Additional topics include parallel programming patterns, future extensions of both CAF and UPC, and hybrid programming. In the hybrid programming section we show how to combine PGAS languages with MPI, and contrast this approach to combining OpenMP with MPI. Real applications using hybrid models are given.



  • SCTutorialPGAS2012.pdf | Adobe Acrobat PDF file
    This file contains the notes from the SC12 version of the UPC/CAF Tutorial