Appendix B: Annotated Reading List
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:
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.
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.
Wright, editor. Beowulf.
Penguin Classics,
1957 .
A highly regarded translation (into prose) of the Beowulf Epic.