Shared Memory Programming for Large Scale Machines

In this paper we evaluate the use of a shared memory programming language, Unified Parallel C (UPC) on BlueGene/L, a distributed memory machine. We demonstrate not only that shared memory programming for hundreds of thousands of processors is possible, but also that with the right support from the compiler and run-time system, the performance of the resulting codes is comparable to MPI implementations.

We describe the compiler infrastructure, the design of the UPC run-time system and communication software. We also discuss several compiler transformations that were used to optimize the UPC implementation of three well-known benchmarks (HPC RandomAccess, HPC STREAMS and NAS CG). We present scaling and absolute performance numbers for these benchmarks on up to 131072 processors, the full BlueGene/L machine.

By: Christopher Barton; Calin Cascaval; George Almási; Yili Zheng; Montse Farreras; José Nelson Amaral

Published in: RC23853 in 2006

LIMITED DISTRIBUTION NOTICE:

This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.

rc23853.pdf

Questions about this service can be mailed to reports@us.ibm.com .