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 |