關於Multicore Programming,最近一直很受到重視,我在學校教的幾門課,還有到業界的演講,不少時候都圍繞在這個議題。要把Multicore Programming的功夫練好,非常不容易。光是修一兩門課,也只能入門而已。嚴格來講,要軟硬體兼修,才是真功夫。不過,這個年頭,講究速成,要軟體的人去搞懂硬體,讀好幾本computer architecture的書,簡直要命。底下這本書,Professional Multicore Programming,算是比較新的書,如書名所述,比較偏實用性,較適合想速成的人當參考。
Professional Multicore Programming - Design and Implementation for C++ Developers
Cameron Hughes and Tracey Hughes
Wiley Publishing Inc. 2008
Introduction ............................................................................................... xxi
Chapter 1: The New Architecture .................................................................. 1
Chapter 2: Four Effective Multicore Designs ................................................. 19
Chapter 3: The Challenges of Multicore Programming ................................... 35
Chapter 4: The Operating System’s Role ....................................................... 67
Chapter 5: Processes, C++ Interface Classes, and Predicates ....................... 95
Chapter 6: Multithreading .......................................................................... 143
Chapter 7: Communication and Synchronization
of Concurrent Tasks .................................................................. 203
Chapter 8: PADL and PBS: Approaches to Application Design ...................... 283
Chapter 9: Modeling Software Systems
That Require Concurrency ......................................................... 331
Chapter 10: Testing and Logical Fault Tolerance
for Parallel Programs .............................................................. 375
Appendix A: UML for Concurrent Design .................................................... 401
Appendix B: Concurrency Models ............................................................... 411
Appendix C: POSIX Standard for Thread Management ................................. 427
Appendix D: POSIX Standard for Process Managemnet ............................... 567
Bibliography .............................................................................................. 593
Index ........................................................................................................ 597