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. Software package management and description: the "rpm" or "dpkg" command depending on the Linux flavor. 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. Videos and tutorials:

V4. Or, since the pointers change all the time:

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. MPI Tutorials:

T4. OpenMP Tutorials:

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

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

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

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

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

T10. Brett Lantz, "Machine Learning with R", Second Edition, Packt Publishing, 2015, http://www.packtpub.com