PREFACE

About UPC

Many have contributed to the ideas and concepts behind the UPC language. The initial UPC language concepts and specifications were published as a technical report authored by William Carlson, Jesse Draper, David Culler, Katherine Yelick, Eugene Brooks, and Karen Warren in May 1999. The first UPC consortium meeting was held in Bowie, Maryland, in May 2000, during which the UPC language concepts and specifications were discussed and augmented extensively. The UPC consortium is composed of a group of academic institutions, vendors, and government laboratories and has been holding regular meetings since May 1999 to continue to develop the UPC language. The first formal specifications of UPC, known as v1.0, was authored by Tarek El-Ghazawi, William Carlson, and Jesse Draper and released in February 2001. The current version, v1.1.1, was released in October 2003 with minor changes and edits from v1.0. At present, v1.2 of the specifications is in the works and is expected to be released soon. v1.2 will be a publication of the UPC consortium because of the extensive contributions of many of the consortium members. v1.2 will incorporate UPC v1.1.1 with additions and will include the full UPC collective operations specifications, v1.0, and the I/O specifications v1.0. The first version of the UPC collective operations specification was authored by Steven Seidel, David Greenberg, and Elizabeth Wiebel and released in December 2003. The first version of the I/O specification was authored by Tarek El-Ghazawi, Francois Cantonnet, Proshanta Saha, Rajeev Thakur, Rob Ross, and Dan Bonachea. It was released in July 2004. More information about UPC and the UPC consortium can be found at http://upc.gwu.edu/.

About This Book

Although the UPC specifications are the ultimate reference of the UPC language, the specifications are not necessarily easy to read for many programmers and do not include enough usage examples and explanations, which are essential for most readers. This book is the first to provide an in-depth interpretation of the UPC language specifications, enhanced with extensive usage examples and illustrations as well as insights into how to write efficient UPC applications.

The book is organized into eight chapters and five appendixes:

  • Chapter 1 provides a quick tutorial that walks readers quickly through the major features of the UPC language, allowing them to write their first simple UPC programs.
  • Chapter 2 positions UPC within the general domain of parallel programming paradigms. It then presents the UPC programming model and describes how data are declared and used in UPC.
  • Chapter 3 covers the rich concept of pointers in UPC, identifying the types, declarations, and usage of the various UPC pointers and how they work with arrays.
  • Chapter 4 explains how data and work can be distributed in UPC such that data locality is exploited through efficient data declarations and work-sharing constructs.
  • Chapter 5 provides extensive treatment to dynamic memory allocation in the shared space, showing all options and their usages via many thorough examples.
  • Chapter 6 covers thread and data synchronization, explaining the effective mechanisms provided by UPC for mutual exclusion, barriers, and memory consistency control.
  • Chapter 7 provides sophisticated programmers with the tools necessary to write efficient applications. Many hand-tuning schemes are discussed along with examples and full case studies.
  • Chapter 8 introduces the two UPC standard libraries: the collective operations library and the parallel I/O library.
  • Appendix A includes the full UPC v1.1.1 specification.
  • Appendix B includes the full UPC v1.0 collective library specifications.
  • Appendix C has the full v1.0 UPC-IO specifications.
  • Appendix D includes information on how to compile and run UPC programs.
  • Appendix E is a quick UPC reference card that will be handy for UPC programmers.

Resources

The ultimate UPC resource is the consortium Web site, which is currently hosted at http://upc.gwu.edu/. For this book, however, the reader should also consult the publisher's ftp site, ftp://ftp.wiley.com/public/sci_tech_med/upc/, for errata and an electronic copy of the full code and Makefiles for all the examples given in the book. Additional materials for instructors wishing to use this book in the classroom are available from the first author.

Acknowledgments

Many of our colleagues have been very supportive during the development of this book. In particular, the authors are indebted to François Cantonnet, whose help has contributed significantly to the book's quality. The continuous cooperation and support of our editor, Val Moliere, and Dr. Hoda El-Sayed is also greatly appreciated.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.219.95.244