Pg 20. "... the execution time for T processors , T_total(P), from ..." should be the execution time for P processors , T_total(P)...", (Thanks to Matt Maly)
Pg 37. First paragraph in section on Matrix Multiplication. The 4th sentence should be "From the definition of matrix multiplication, computing the elements of a row block of C requires the full B matrix, but only the corresponding row block of A." (Thanks to David García Quintas)
Pg 89, figure 4.13. The statement
initialize(uk, ukpi);
should be placed inside a "single construct" to prevent a
race condition from
multiple threads simultaneously assigning elements to uk and ukpi.
#pragma omp single
{
initialize(uk, ukpi);
}
Note that a single construct implies a barrier and hence insures that
the
initialization is complete and visible to all threads before entering
the for-loop.
(Thanks to Professor Simone Martins of Universidade Federal Fluminense,
Brazil)
Page 254, footnote at bottom of page. Replace the footnote with the text: "These words are attributed to Giordano Bruno on February 16, 1600, as he was burned at the stake for insisting that the earth orbited the Sun. These words have also been attributed to Galileo Galilei. This Italian phrase roughly translates as "And nonetheless, it moves". (Thanks to Rebecca Ingram)