Recommended Reading
Viewings
| Title | Author | Comment |
| Introduction to OpenMP. Intel (online) | Tim Mattson | OpenMP Basics |
Tutorials
| Title | Author | Comment |
| Message Passing Interface (MPI). Lawrence Livermore National Laboratory (online) | Blaise Barney | MPI Basics |
Papers
| Title | Author | Comment |
| How not to lie with statistics: the correct way to summarize benchmark results, In: Communications of the ACM. Vol. 29 No. 3 (1986):218-221 (available online) | Philip J. Fleming, John J. Wallace | Benchmark Basics |
| Scientific Benchmarking of Parallel Computing Systems – Twelve ways to tell the masses when reporting performance results, In: Jackie Kern and Jeffrey S. Vetter (eds.) SC '15: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, November 15-20, 2015 Austin TX, USA. IEEE (2015):12 pages (available online) | Torsten Hoefler, Roberto Belli | Introduction to Benchmarking |
| What Every Computer Scientist Should Know About Floating-Point Arithmetic, In: ACM Computing Surveys. Vol. 23 No. 1 (1991):5-48 (PDF) (also available as Link) | David Goldberg | Introduction to Floating-Point Arithmetic |
Books
| Title | Author | Comment |
| 21st Century C: C Tips from the New School. O'Reilly and Associates; Second Edition. 2014 | Ben Klemens | Up-To-Date Techniques to Use C as a Modern Language |
| Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. Boston, San Francisco, New York 1995 | Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides | Design Pattern Basics |
| Free Software, Free Society: Selected Essays of Richard M. Stallman. GNU Press. Boston, MA 2002 (PDF) | Joshua Gay (ed.) | Free Software / Open Source Basics |
| Fundamentals of Parallel Processing. Prentice Hall. Upper Saddle River, New Jersey 2003 | Harry F. Jordan, Gita Alaghband | Parallel Computing Basics |
| High Performance Computing (available online) | Charles Severance, Kevin Dowd | Introduction to HPC as Free Programming Book |
| Introduction to High Performance Computing for Scientists and Engineers. CRC Press. Boca Raton, London, New York 2011 | Georg Hager, Gerhard Wellein | Standard Work for HPC |
| Introduction to High-Performance Scientific Computing (available online) | Victor Eijkhout | Introduction to HPC as Free Programming Book |
| Operating Systems Concepts (Ninth Edition). Wiley. 2013 | Abraham Silberschatz, Peter Baer Galvin, Grey Gagne | Introduction to Operating System Concepts |
| Optimizing HPC Applications with Intel® Cluster Tools. Apress Media. 2014 (available online) | Alexander Supalov, Andrey Semir, Michael Klemm, Chrisptoher Dahnken | Optimization Basics based on Intel Parallel Environments |
| Parallel Computing Works!. Morgan Kaufmann Publishers, Inc. San Francisco 1994 | Geoffrey C. Fox, Roy D. Williams, Paul C. Messina | An Insight in the History of Parallel Computing |
| Programming on Parallel Machines (available online) | Norm Matloff | Introduction to Parallel Machines based on C/C++, R, OpenMP, CUDA and MPI as Free Programming Book |
| The Linux Command Line. No Starch Press. San Francisco 2012 (available online) | William E. Shotts | Linux Shell Basics |
| Using MPI – Portable Parallel Programming with the Message-Passing Interface. The MIT Press. Cambridge, London 1994 | William Gropp, Ewing Lusk, Anthony Skjellum | Standard Work for MPI |
Useful Links
| Title | Author/Organization | Comment |
| Applications of Parallel Computers | Jim Demmel | Online Rendition of Applications of Parallel Computers taught at U.C. Berkeley in Spring 2012; Requires XSEDE Login/Account |
| Canonical User Environment Variables | nci.org.au | Good Overwiew of Environment Variables |
| Cornell Virtual Workshops | cvw.cac.cornell.edu | Virtual Workshop Offer e.g. for Programming Languages and Parallel Computing |
| Osamu Aoki | Linux Basics based on the Debian Distribution | |
| DiRAC – Distributed Research utilizing Advanced Computing | Science & Technology Facilities Council | Essential HPC Training |
| Fortran Wiki | fortranwiki.org (170 Authors in September 2019) | Open Venue for Discussing All Aspects of the Fortran Programming Language and Scientific Computing |
| Free Programming Books | github.com (600 Contributors in October 2017) | Books about Programming Languages and Topics Related to (parallel) Programming |
| High Performance Scientific Computing AMath 483/583 Class Notes | faculty.washington.edu | Practical Introduction to Parallel Concepts, Machine Architecture, Programming Languages and Software Tools for Scientific Computing |
| HPC Carpentry | hpc-carpentry.github.io | Teaching Basic Skills for High-Performance Computing |
| HPC Wiki | Process-Oriented Performance Engineering (ProPE) | Site-Independent HPC Documentation |
| OpenSSH Wiki | en.wikibooks.org/wiki/OpenSSH (Ca. 15000 Pageviews per Day in December 2019) | Helps to save effort and time through using OpenSSH, and especially SFTP |
| Real Python Tutorials | realpython.com | Python Tutorials |
| Software Carpentry | software-carpentry.org | Teaching Basic Lab Skills for Research Computing |
| Using C and C++ with Fortran | Nelson H. F. Beebe | Mixed Language Programming (last update from 2001, but still good) |
| What Every Computer Scientist Should Know About Floating-Point Arithmetic (also available as paper (PDF)) | David Goldberg | In-depth Introduction to Floating-Point Arithmetic |