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.