This is the first book to explain the language Unified Parallel C and its use. Authors El-Ghazawi, Carlson, and Sterling are among the developers of UPC, with close links with the industrial members of the UPC consortium. Their text covers background material on parallel architectures and algorithms, and includes UPC programming case studies. This book represents an invaluable resource for the growing number of UPC users and applications developers. More information about UPC can be found at: http://upc.gwu.edu/
Preface.
Chapter 1. An Introductory Tutorial.
Chapter 2. Programming View and UPC Data Types.
Chapter 3. Pointers and Arrays.
Chapter 4. Work Sharing and Domain Decomposition.
Chapter 5. Dynamic Shared Memory Allocation.
Chapter 6. Synchronization and Memory Consistency.
Chapter 7. Performance Tuning and Optimization.
Chapter 8. UPC Libraries.
Appendix A: UPC Language Specifications v1.1.1.
Appendix B: OPC Collective Operations Specifications v1.0.
Appendix C: UPC-IO Specifications v1.0.
Appendix D: How to Complile and Run UPC Programs.
Appendix E: Quick UPC Reference Card.
References.
Index.
TAREK EL-GHAZAWI, PHD, is Professor, Electrical and Computer Engineering Department, The George Washington University. His research interests include high-performance computing, computer architecture, reconfigurable computing, embedded systems, and experimental performance.
WILLIAM CARLSON, PHD, is affiliated with the IDA Center for Computing Sciences. His research interests include performance evaluation of advanced computer architectures, operating systems, languages, and computers for parallel and distributed systems.
THOMAS STERLING, PHD, is a professor at Caltech and its Jet Propulsion Laboratory. His research interests include parallel computing architecture, cluster computing, petaflop computing, and systems software and evaluation.
KATHERINE YELICK, PHD, is Professor of Computer Science, University of California, Berkeley. Her research interests include parallel computing, memory hierarchy optimizations, programming languages, and compilers.