21-765. Introduction to Parallel Computing and Scientific Computation


Software documentation that can be volatile and changes often is mentioned early in the list. Textbooks are listed at the bottom.

V1. Linux Manual Pages accessed by "apropos <keyword>" to get a list of commands, and then "man <command>", or "xman" under X-Windows. The command "info" gives a emacs-like interface and more complete documentation for some packages. Graphical interfaces have help applications of their own: e.g. in GNOME the default filemanager (nautilus) acts also as a help browser for GNOME and associated issues. Software package management and description: the "rpm" command. Additional package documentation inside the /usr/share/doc directory. A Google search almost always brings in useful info.

V2. HowTos and FAQs, can be found on the main software archive sites on the Internet. Some reference links:

V3. Web: Start a web browser and try one of the following:

or, since the pointers change all the time: Here are some interesting students contributions:

T1. Brian W. Kernighan, Dennis M. Ritchie, "The C Programming Language", PTR Prentice Hall, 1988.

T2. David A. Wheeler, "Secure Programming for Linux and Unix HOWTO", http://www.dwheeler.com/secure-programs/, 2002.

T3. Al Geist, Adam Beguelin, Jack Dongarra, Weicheng Jiang, Robert Mancheck, Vaidy Sunderam, "PVM: Parallel Virtual Machine. A Users' Guide and Tutorial for Networked Parallel Computing", The MIT Press, 1994.

T4. MPI Tutorials:

T5. OpenMP Tutorials:

T6. Ian Foster, "Designing and Building Parallel Programs", ACM Press, 1995.

T7. George Em Karniadakis, Robert M. Kirby II, "Parallel Scientific Computing in C++ and MPI", Cambridge University Press, 2003.

T8. Bruce Eckel, Thinking in *, http://www.bruceeckel.com/

T9. Paul Horowitz, Winfield Hill, "The Art of Electronics", Cambridge University Press, 1990.

T10. David B. Kirk, Wen-mei W. Hwu, "Programming Massively Parallel Processors - A Hands-on Approach", Morgan Kaufmann Publishers,  Elsevier, 2010.