10.07.2015 Views

Is Parallel Programming Hard, And, If So, What Can You Do About It?

Is Parallel Programming Hard, And, If So, What Can You Do About It?

Is Parallel Programming Hard, And, If So, What Can You Do About It?

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

346 APPENDIX H. CREDITSH.4 Original Publications1. Section 1.4 (“<strong>What</strong> Makes <strong>Parallel</strong> <strong>Programming</strong><strong>Hard</strong>?”) on page 7 originally appearedin a Portland State University Technical Report[MGM + 09].2. Section 8.3.1 (“RCU Fundamentals”) onpage 76 originally appeared in Linux WeeklyNews [MW07].3. Section 8.3.2 (“RCU Usage”) on page 82originally appeared in Linux WeeklyNews [McK08c].4. Section 8.3.3 (“RCU Linux-Kernel API”) onpage 90 originally appeared in Linux WeeklyNews [McK08b].5. Section C.7 (“Memory-Barrier Instructions ForSpecific CPUs”) on page 173 originally appearedin Linux Journal [McK05a, McK05b].6. SectionD.1(“SleepableRCUImplementation”)on page 183 originally appeared in LinuxWeekly News [McK06].7. Section D.2 (“Hierarchical RCU Overview”) onpage 188 originally appeared in Linux WeeklyNews [McK08a].8. Section D.4 (“Preemptable RCU”) onpage 231 originally appeared in Linux WeeklyNews [McK07a].9. Appendix E (“Formal Verification”) onpage 243 originally appeared in Linux WeeklyNews [McK07f, MR08].H.5 Figure Credits1. Figure 2.1 (p 11) by Melissa McKenney.2. Figure 2.2 (p 12) by Melissa McKenney.3. Figure 2.3 (p 12) by Melissa McKenney.4. Figure 2.4 (p 12) by Melissa McKenney.5. Figure 2.5 (p 13) by Melissa McKenney.6. Figure 2.6 (p 13) by Melissa McKenney.7. Figure 2.7 (p 14) by Melissa McKenney.8. Figure 2.8 (p 14) by Melissa McKenney.11. Figure 5.3 (p 49) by Kornilios Kourtis.12. Figure 5.17 (p 57) by Melissa McKenney.13. Figure 5.19 (p 58) by Melissa McKenney.14. Figure 5.20 (p 59) by Melissa McKenney.15. Figure 12.2 (p 118) by Melissa McKenney.16. Figure 12.6 (p 124) by David Howells.17. Figure 12.7 (p 130) by David Howells.18. Figure 12.8 (p 130) by David Howells.19. Figure 12.9 (p 131) by David Howells.20. Figure 12.10 (p 131) by David Howells.21. Figure 12.11 (p 132) by David Howells.22. Figure 12.12 (p 132) by David Howells.23. Figure 12.13 (p 133) by David Howells.24. Figure 12.14 (p 133) by David Howells.25. Figure 12.15 (p 134) by David Howells.26. Figure 12.16 (p 134) by David Howells.27. Figure 12.17 (p 136) by David Howells.28. Figure 12.18 (p 136) by David Howells.29. Figure 13.2 (p 139) by Melissa McKenney.30. Figure C.12 (p 177) by Melissa McKenney.31. Figure D.1 (p 183) by Melissa McKenney.32. Figure F.3 (p 291) by Kornilios Kourtis.H.6 Other SupportWeowethankstomanyCPUarchitectsforpatientlyexplaining the instruction- and memory-reorderingfeatures of their CPUs, particularly Wayne Cardoza,Ed Silha, Anton Blanchard, Tim Slegel, JuergenProbst, Ingo Adlung, and Ravi Arimilli. Wayne deservesspecial thanks for his patience in explainingAlpha’s reordering of dependent loads, a lesson thatPaul resisted quite strenuously!Portionsofthismaterialarebaseduponworksupportedby the National Science Foundation underGrant No. CNS-0719851.9. Figure 5.1 (p 47) by Kornilios Kourtis.10. Figure 5.2 (p 48) by Kornilios Kourtis.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!