Parallel Programming with Microsoft® Visual C++®

Errata for Parallel Programming with Microsoft® Visual C++®




The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question Note Update



Version Location Description Submitted By Date Submitted Date Corrected
Printed, PDF, ePub, Mobi, Safari Books Online
Page 15
4th paragraph

Codeplex: Niels_Dekker wrote Sep 1, 2011 at 8:44 AM Chapter 2, Parallel Loops, p15 (http://msdn.microsoft.com/en-us/library/gg663527.aspx) says: 'replace the for_each keyword with a call to the parallel_for_each method'. However, 'for_each' is not a keyword. (At least, not according the C++ Standard.) So instead, I would suggest: 'replace the for_each call with a call to the parallel_for_each method'. Ade: Should read: To take advantage of multiple cores, replace the for_each call with a call to the parallel_for_each method.

Ade Miller
Ade Miller
O'Reilly Author 
Oct 18, 2012 
Printed, PDF, ePub, Mobi, Safari Books Online
Page 55
Paragraph 5 on page

Codeplex: There is an in Considerations for Small Loop Bodies section. When you have small loop bodies, you can apply the techniques that were described in Chapter 3, "Parallel Loops" in the "Special Handling of Small Loop Bodies" section. Should read "in Chapter 2,"

Ade Miller
Ade Miller
O'Reilly Author 
Oct 18, 2012 
Printed, PDF, ePub, Mobi, Safari Books Online
Page 72
3rd paragraph on page.

Codeplex: Minor typo - page 72. "that implied data flow" should be "than implied data flow". "However, in general, explicit data flow is less prone to error that implied data flow." should be "than implied data flow" Ade: This should be: However, in general, explicit data flow is less prone to error than implied data flow.

Ade Miller
Ade Miller
O'Reilly Author 
Oct 18, 2012 
Printed, PDF, ePub, Mobi, Safari Books Online
Page 115
1sr paragraph of DYNAMIC RESOURCE MANAGEMENT

Codeplex: jsh003guardz63 wrote Jul 19, 2011 at 9:17 AM Minor typo – page 115. “use patterns” should be “usage patterns” or “patterns of use”. Ade: Should read: If it detects usage patterns that indicate consistent underutilization of a core, the resource manager might reassign that core to another scheduler.

Ade Miller
Ade Miller
O'Reilly Author 
Oct 18, 2012 
Printed, PDF, ePub, Mobi, Safari Books Online
Page 120
Last paragraph

Codeplex: jsh003guardz63 wrote Jul 19, 2011 at 9:14 AM Page 120 – “could cause bugs” is incorrect. This “is a defect in the design and/or implementation” or “might result in unintended behaviour”, but it doesn’t “cause bugs”. Ade: Should read: If your cores are very busy and message delivery does not have a high priority, tasks that depend on receiving data from the messaging buffers might not be run, possibly resulting in unintended behavior.

Ade Miller
Ade Miller
O'Reilly Author 
Oct 18, 2012 
Printed, PDF, ePub, Mobi, Safari Books Online
Page 131
2nd paragraph on page

Codeplex: jsh003guardz63 wrote Jul 19, 2011 at 9:10 AM Minor typo - page 131. "proved by the Concurrency Runtime" should be "provided by the Concurrency Runtime ". Ade: Should read: Recall that there are two kinds of blocking operations: cooperative blocking operations provided by the Concurrency Runtime and "noncooperative" blocking operations provided by the operating system.

Ade Miller
Ade Miller
O'Reilly Author 
Oct 18, 2012