Distributed Shared-memory Programming with UPC

Tarek El-Ghazawi

School of Computational Sciences

George Mason University

One Day Tutorial

September 15, 2000

10:00 A.M. - 4:00 P.M.

Room 206

Science and Tech. I

UPC, or the Unified Parallel C, is a parallel extension of ANSI C aimed at exploiting the ease of programming of the shared memory model, while enhancing performance. Therefore, UPC is developed around the distributed shared-memory programming model and among its features are constructs that can allow programmers to exploit memory locality. Such constructs facilitate the explicit control of data and work distribution among threads such that remote memory accesses are minimized. Thus, UPC maintains the original C language heritage of keeping programmers in control and close to hardware. Among the other advanced features offered by UPC are shared and private pointers into the shared and private address spaces, shared and private data, efficient synchronization mechanisms including non-blocking barriers and support for establishing different memory consistency models. Vendor's support to UPC is building up and some open source, as well as early vendor, compilers are now available. Initial benchmarking results show that UPC compares favorably to the current state of the art in parallel programming paradigms. Furthermore, a UPC research exhibit proposal was selected for display at the supercomputing conference to be held in Dallas in November of 2000. GMU along with NSA and high-end computing vendors are taking the lead into developing the specs, testing, and benchmarking for UPC. This one day tutorial will present the concepts, syntax, and application programming in UPC. Additional information can be found http://hpc.gmu.edu/~upc.

 

Outline of the Tutorial:

Programming Models for Parallel Computers

The DSM Programming Model

Thread View

Memory View

Consistency and Synchronization

The UPC Programming Language Syntax

Background

Status

Programming model

Programming in UPC

UPC data

UPC Pointers

Dynamic Memory allocation

Synchronization

Work Sharing: forall()

Example Applications and Experimental Results

Language Specifications and Issues

A Few words on the Cray and Compaq Implementations

Comparison of UPC, MPI, OpenMP, and HPF

Conclusions

 

Tarek El-Ghazawi

Dr. El-Ghazawi has received his Ph.D. degree in 1988 from New Mexico State University in Electrical and Computer Engineering. He is currently an Associate Professor of Computational Sciences and Computer Engineering at the George Mason University School of Computational Sciences. Dr. El-Ghazawi is also a visiting scientist at the Research Institute for Advanced Computer Science (RIACS) at NASA Ames Research Center.. Prior to GMU, he was with the Department of Electrical Engineering and Computer Science at the George Washington University. His research interests include high-performance computing and architectures, parallel I/O, and performance evaluations. Dr. El-Ghazawi has published extensively in these areas. His research has been supported by NSA, NASA HPCC, USRA/CESDIS, NSF, NASA GSFC, Arctic Region Supercomputing Center/U.S. Air Force, and Computer Science Corporation/Army Corps of Engineers. He is currently serving as an associate editor for the International Journal on Parallel and Distributed Systems and Networking, and a guest editor for the IEEE Concurrency. He serves and served on many technical program committees including the IEEE Aerospace Engineering and the Frontiers of the Massively Parallel Computations, and was the workshop chair for Frontiers'95, and the program co-chair for the International Conference on Parallel and Distributed Computing and Systems, 1991. He is a Senior Member of the IEEE, a member of the ACM, and Phi Kappa Phi.