UPC: Distributed Shared-Memory Programming

Preface. 1. Introductory Tutorial. 1.1 Getting Started. 1.2 Private and Shared Data. 1.3 Shared Arrays and Affinity of Shared Data. 1.4 Synchronization and Memory Consistency. 1.5 Work Sharing. 1.6 UPC Pointers. 1.7 Summary. Exercises. 2. Programming View and UPC Data Types. 2.1 Programming Models. 2.2 UPC Programming Model. 2.3 Shared and Private Variables. 2.4 Shared and Private Arrays. 2.5 Blocked Shared Arrays. 2.6 Compiling Environments and Shared Arrays. 2.7 Summary. Exercises. 3. Pointers and Arrays. 3.1 UPC Pointers. 3.2 Pointer Arithmetic. 3.3 Pointer Casting and Usage Practices. 3.4 Pointer Information and Manipulation Functions. 3.5 More Pointer Examples. 3.6 Summary. Exercises. 4. Work Sharing and Domain Decomposition. 4.1 Basic Work Distribution. 4.2 Parallel Iterations. 4.3 Multidimensional Data. 4.4 Distributing Trees. 4.5 Summary. Exercises. 5. Dynamic Shared Memory Allocation. 5.1 Allocating a Global Shared Memory Space Collectively. 5.2 Allocating Multiple Global Spaces. 5.3 Allocating Local Shared Spaces. 5.4 Freeing Allocated Spaces. 5.5 Summary. Exercises. 6. Synchronization and Memory Consistency. 6.1 Barriers. 6.2 Split-Phase Barriers. 6.3 Locks. 6.4 Memory Consistency. 6.5 Summary. Exercises. 7. Performance Tuning and Optimization. 7.1 Parallel System Architectures. 7.2 Performance Issues in Parallel Programming. 7.3 Role of Compilers and Run-Time Systems. 7.4 UPC Hand Optimization. 7.5 Case Studies. 7.6 Summary. Exercises. 8. UPC Libraries. 8.1 UPC Collective Library. 8.2 UPC-IO Library. 8.3 Summary. References. Appendix A: UPC Language Specifications, v1.1.1. Appendix B: UPC Collective Operations Specifications, v1.0. Appendix C: UPC-IO Specifications, v1.0. Appendix D: How to Compile and Run UPC Programs. Appendix E: Quick UPC Reference. Index.

[1]  Katherine A. Yelick,et al.  Communication optimizations for fine-grained UPC applications , 2005, 14th International Conference on Parallel Architectures and Compilation Techniques (PACT'05).

[2]  Charles Wallace,et al.  The UPC memory model: problems and prospects , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[3]  Tarek A. El-Ghazawi,et al.  Performance monitoring and evaluation of a UPC implementation on a NUMA architecture , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[4]  Tarek A. El-Ghazawi,et al.  UPC Performance and Potential: A NPB Experimental Study , 2002, ACM/IEEE SC 2002 Conference (SC'02).

[5]  Tarek A. El-Ghazawi,et al.  An evaluation of global address space languages: co-array fortran and unified parallel C , 2005, PPoPP.

[6]  H. Su,et al.  SCI networking for shared-memory computing in UPC: blueprints of the GASNet SCI conduit , 2004, 29th Annual IEEE International Conference on Local Computer Networks.

[7]  Katherine A. Yelick,et al.  Evaluating support for global address space languages on the Cray X1 , 2004, ICS '04.