Corrections Solicited

The list below contains all of the errors found to date for Principles of Parallel Programming. If you discover an error not in this list, please send it to lin AT utexas DOT edu and/or snyder AT cs DOT washington DOT edu. Your fellow readers and we will be very appreciative.

Acknowledgments

We wish to express our sincere gratitude to the following readers for their contributions:
Evan Herbst, Julia Schwarz, Jeff Lowney, David Jefferson, Edin Hodzic.

Errata

  • p. 82 The equation for E2 should have TS/T2 as the numerator.

  • p. 94 The third sentence should read:
    For example, threads might make protected global references and then call localize to make local references.

  • p. 103 Line 2 should read:
    2 forall (index in (0..25))

  • p. 107 Line 23 should read:
    23 for (p=d-1; p>=0; p--)

  • p. 116 The inline code should read:
    topEdge = min/Pt.y; Find smallest y field of the Pt array
    botEdge = max/Pt.y; Find largest y field of the Pt array
    rightEdge = max/Pt.x; Find largest x field of the Pt array
    leftEdge = min/Pt.x; Find smallest x field of the Pt array

  • p. 158 In Figure 6.5 all instances of Waiting thread reading pthread_cond_signal() should be pthread_cond_wait()

  • p. 195 Figure 6.28: Line 9 should be
    9 #pragma omp for schedule(static) private(i)

  • p. 207 In Code Spec 7.5 the last argument is wrong; it should be as follows:
    MPI_Comm comm // An MPI communicator

  • p. 209 in Code Spec 7.7 the first four lines should be
    void *sendBuffer, // Address of data to send
    void *recvBuffer, // Address at which to receive data
    int count, // Number of elements to receive
    MPI_Datatype datatype, // Type of each element

  • p. 211 The "notes" should read
    MPI_Gcatterv -> MPI_Gatherv

  • p. 217, The code sample, line 31: MPI_ should be MPI_INT

  • p. 240 In the last line of the Code Spec 8.2 should read "indicated" rather than "indicted"