This material is based on several different sources:
- G. Andrews, "Concurrent Programming: Principles and Practice";
- G. Andrews, "Foundations of Parallel and Distributed Programming";
- I. Foster, "Designing and Building Parallel Programs";
- M. Wolfe, "High Performance Compilers for Parallel Computing";
- K. Hwang, "Advanced Computer Architecture: Parallelism, Scalability,
and Programmability";
- Lecture notes of the "Parallel Programming" course taught by
Michael Scott at the University of Rochester; and
- Selected scientific papers, including:
- G. Andrews and F. Schneider,
"Concepts and Notations for Concurrent Programming. Computing Surveys,
V. 15, n.1, March, 1983.
- Bianchini et al., "Evaluating the Effect of Coherence
Protocols on the Performance of Parallel Programming Constructs" ;
- H. Bal et al., "Programming Languages for Distributed Computing
Systems". Computing Surveys, V. 21, n. 3, September, 1989;
- J. Mellor-Crummey and M. L. Scott, "Algorithms for Scalable Synchronisation on Shared-Memory Multiprocessors". ACM, TOCS, V. 9, n. 1, pp. 21-65