This lecture is based on the lecture "Programmierung paralleler Anwendungen". All slides for that lecture are here.
Overview
Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar:
Introduction to Parallel Computing
Second Edition, Addison Wesley, 2003
Barry Wilkinson, Michael Allen:
Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers
Prentice-Hall, 2005
Maurice Herlihey, Nir Shavit:
The Art of Multiprocessor Programming
Morgan Kaufmann, 2008
Thomas Rauber, Gudula Rünger:
Parallele und verteilte Programmierung
Springer, 2000
Matthew J. Scottile, Timothy G. Mattson, Craig E. Rasmussen:
Concurrency in Programming Languages
CRC Press, 2010
Gregory R. Fister:
In Search of Clusters (2nd edition)
Prentice Hall, 1998
Seyed H. Roosta:
Parallel processing and Parallel Algorithms - Theory and Computation
Springer, 2000
Flemming Nielson, Hanne Riis Nielson, Chris Hankin: Principles of Program Analysis. Springer, 1999
Books on Compilers
Programming
http://www.mpi-forum.org/
http://www.openmp.org/
Michael J. Quinn:
Parallel Programming in C with MPI and OpenMP
McGraw Hill, 2003
Peter S. Pacheco:
Parallel Programming with MPI
Morgan Kaufman Publishers, Inc.,1997
Rohit Chandra et.al:
Parallel Programming in OpenMP
Morgan Kaufmann, 2001
Gregory R. Andrews:
Foundations of Multithreaded, Parallel, and Distributed Programming
Addison-Wesley, 2000
Barbara Chapman, Gabriele Jost, Ruud van der Pas:
Using OpenMP
The MIT Press, 2008
Parallelim in Languages
ISO/IEC Standard C++17, ISO/IEC-Nummer 14882:2017
ISO/IEC Standard C11, ISO/IEC-Nummer 9899:2011
Java Language Specification
Computer Architecture
David E.Culler, Jaswinder Pal Singh:
Parallel Computer Architecture: A Hardware/Software Approach
Morgan Kaufmann Publishers, Inc., San Francisco, 1999
John L. Hennessy, David A. Patterson:
Computer Architecture - A Quantitative Approach
5th edition, Morgan Kaufmann, 2012
David A. Patterson, John L. Hennessy:
Computer Organization and Design
5th edition, Morgan Kaufmann, 2013
Andrew Tanenbaum:
Structured Computer Organization
6th edition, Prentice Hall, 2012
Memory
Ulrich Drepper:
What Every Programmer Should Know About Memory
http://www.akkadia.org/drepper/cpumemory.pdf, 2007
Synchronization
Gadi Taubenfeld:
Synchronization Algorithms and Concurrent Programming
Pearson Prentice Hall, Harlow, 2006