This appendix contains an annotated reading list of books and papers of interest to builders and users of Beowulf clusters.
Jack Dongarra, Ian Foster, Geoffrey Fox, William Gropp, Ken Kennedy, Linda Torczon, and Andy White, editors. Sourcebook of Parallel Computing. Morgan Kaufmann, 2003. A collection of chapters written by many of the leaders in the field of parallel computing, including overviews of parallel computer architecture, programming models, algorithms. Also included are descriptions of applications that have successfully used parallel computing.
Ian Foster. Designing and Building Parallel Programs. Addison-Wesley, 1995. Also at: http://www.mcs.anl.gov/dbpp/. A general introduction to the process of creating parallel applications. It includes short sections on MPI and HPF.
William Gropp,Steven Huss-Lederman,Andrew Lumsdaine,Ewing Lusk,Bill Nitzberg,William Saphir, and Marc Snir. MPI—The Complete Reference: Volume 2, The MPI-2 Extensions. MIT Press, Cambridge, MA, 1998. An annotated version of the MPI Standard; this contains additional examples and discussion about MPI-2.
William Gropp,Ewing Lusk, and Anthony Skjellum. Using MPI: Portable Parallel Programming with the Message Passing Interface, 2nd edition. MIT Press, 1999. A tutorial introduction to the MPI Standard, with examples in C and Fortran.
William Gropp,Ewing Lusk, and Rajeev Thakur. Using MPI-2: Advanced Features of the Message-Passing Interface. MIT Press, Cambridge, MA, 1999. A tutorial introduction to the MPI-2 Standard, with examples in C and Fortran. This is the best place to find information on using MPI I/O in applications.
Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. PTR Prentice Hall, 2nd edition, 1988. The original book describing the C programming language.
John M. May. Parallel I/O for High Performance Computing. Morgan Kaufmann, 2001. A thorough introduction to parallel I/O including MPI I/O and higher-level libraries such as HDF.
Evi Nemeth,Garth Snyder,Scott Seebass, and Trent R. Hein. Unix System Administration Handbook. Prentice Hall PTR, 3rd edition, 2001. A comprehensive and practical book on Unix system administration, it covers all major varieties of Unix, not just Linux.
Peter S. Pacheco. Parallel Programming with MPI. Morgan Kaufman, 1997. A good introductory text on parallel programming using MPI.
Gregory F. Pfister. In Search of Clusters: The Ongoing Battle in Lowly Parallel Computing, 2nd ed. Prentice Hall, Englewood Cliffs, NJ, 1995 edition, 1998. A delightful book advocating clusters for many problems, including for commercial computing. It has nice sections on parallel programming and (as part of his argument for clusters) a good discussion of shared-memory systems and the issues of correctness and performance that are often brushed under the rug. See Pfister's annotated bibliography for more books and articles on clusters.
Marc Snir,Steve W. Otto,Steven Huss-Lederman,David W. Walker, and Jack Dongarra. MPI—The Complete Reference: Volume 1, The MPI Core, 2nd edition. MIT Press, Cambridge, MA, 1998. An annotated version of the MPI-1 Standard, it contains more examples than the official copy and is a good reference on MPI.
Thomas L. Sterling,John Salmon,Donald J. Becker, and Daniel F. Savarese. How to Build a Beowulf. MIT Press, 1999. The original and best-selling Beowulf book. Includes a discussion of building and testing Beowulf node hardware.
W. Richard Stevens. Advanced Programming in the UNIX Environment. Addison-Wesley, Reading, MA, USA, 1992. A thorough and highly readable reference on programming under Unix.
W. Richard Stevens. UNIX Network Programming: Interprocess Communications, volume 2. Prentice-Hall, Upper Saddle River, NJ 07458, USA, second edition, 1998. A companion to Stevens' excellent book on sockets and XTI, this book covers POSIX and System V interprocess communication mechanisms including shared memory, remote procedure calls, and semaphores.
W. Richard Stevens. UNIX Network Programming: Networking APIs: Sockets and XTI, volume 1. Prentice-Hall PTR, Upper Saddle River, NJ 07458, USA, second edition, 1998. An excellent reference for network programming under Unix; it provides a highly readable and detailed description of all aspects of Unix socket programming.
David Wright, editor. Beowulf. Penguin Classics, 1957. A highly regarded translation (into prose) of the Beowulf Epic.