The Art of Multiprocessor Programming
Abstrak
In many places, inserted text is highlighted in red. Preface p. xx " all of which are useful in structuring concurrent applications. " Chapter 1 p. 4 In Fig. 1.1, line 4 should say for (int j = (i * block) + 1; j <= (i + 1)* block; j++) { p. 11 p. 18 Second paragraph of Mutual Exclusion bullet: " Initially the can is either up or down. Let us say it was down. Then only the pets can go in, and mutual exclusion holds. " Replace question 6 bullet 2 with: Suppose the method M accounts for 30% of the program's computation time. Let sn be the program's speedup on n processes, assuming the rest of the program is perfectly parallelizable. Your boss tells you to double this speedup: the revised program should have speedup s'n ≥ sn/2. You advertize for a programmer to replace M with an improved version, k times faster. What value of k should you require? Chapter 2 p. 23 Figure 2.3 should be amended as shown: public long getAndIncrement() { lock.lock(); try { long temp = value; value = temp + 1; return temp; } finally { lock.unlock(); } } p. 25 Pragma 2.3.1: " We explain the reasons in Chapter 3 and Appendix B. " p. 26 In Fig. 2.5, remove all declarations of variables as volatile. Indeed as stated in Pragma 2.3.1 on page 25, one should use memory barriers when implementing these algorithms. However, in this chapter (in all code) we avoid such issues to keep the algorithms simple. Adding volatile to these variables would require more complex coding that would distract readers from the core issues at hand.
Akses Cepat
- Tahun Terbit
- 2021
- Bahasa
- en
- Total Sitasi
- 701×
- Sumber Database
- Semantic Scholar
- DOI
- 10.1016/c2011-0-06993-4
- Akses
- Open Access ✓