TDDD56 Multicore and GPU Programming
At the time of planning the course,
there exists no single textbook that covers the whole course contents
(there might appear some new ones in the near future, though).
All books listed below should be available in the TekNat library on the campus, some also as reference copy or e-books.
In principle you should be able to follow the course based on the OH material and the online references (e.g., articles) given out further below. If you prefer to work with a textbook, we recommend that you choose one introductory text to parallel programming (not needed if you already have taken TDDC78/TANA77 earlier), such as Wilkinson/Allen or Lin/Snyder, and possibly complement this with a book or online material about GPU programming. If you want to work with a GPU programming book, too, we recommend, in the first hand, Sanders/Kandrot CUDA by example, see below.
C. Lin, L. Snyder: Principles of Parallel Programming.
Pearson/Addison Wesley, 2008. 978-0-321-54942.
(General introduction text. The TekNat-Library has a copy for loan and will also have a reference copy or e-book.)
T. Mattson, B. Sanders, B. Massingill:
Patterns for Parallel Programming.
Addison Wesley, 2005. 978-0-321-22811-6
(More a survey, could be useful as a secondary book. The TekNat-Library has a copy for loan.)
M. Herlihy and N. Shavit:
The Art of Multiprocessor Programming.
Morgan Kaufmann Publishers, 2008. 978-0-12-370591-4
(More advanced issues in shared-memory synchronization, esp. about non-blocking concurrent data structures. The TekNat-Library has one copy for loan and also as e-book.)
B. Wilkinson, M. Allen:
Parallel Programming, Second Edition.
Pearson/Prentice Hall, 2005. 0-13-140563-2
(General introduction text. The TekNat-Library has one reference copy and one copy for loan.)
J. Sanders, E. Kandrot:
CUDA by example.
Addison-Wesley, 2011. 978-0-13-138768-3
(Recommended further reading, for GPU programming in CUDA. The TekNat-Library has one copy for loan.)
Andras Vajda: Programming Many-Core Chips.
Springer, 2011. 978-1-4419-9738-8
(Very recent book, industry perspective, less suitable as a textbook, useful for further reading. The TekNat-Libary will have it as e-book.)
David B. Kirk and Wen-mei W. Hwu:
Programming Massively Parallel Processors: A Hands-on Approach
Morgan Kaufmann, 2010. ISBN 0123814723
(Only secondary reading, for GPU programming in CUDA. Available in the TekNat-Library as e-book.)
A. Grama, G. Karypis, V. Kumar, A. Gupta:
Introduction to Parallel Computing, 2nd Edition.
(General introduction text with focus on parallel algorithms. The TekNat Library has a copy for loan.)
A. Munshi, B. Gaster, T. Mattsson, J. Fung, D. Ginsburg:
OpenCL Programming Guide.
Addison-Wesley, 2011. Print-edition 978-0-321-74964-2
(New book. The TekNat Library has acquired one copy for loan.)
B. Gaster, L. Howes, D. Kaeli, P. Mistry
Heterogeneous Computing with OpenCL.
Morgan Kaufmann Publishers, (Sep 2, 2011) 978-0123877666
(New book, to appear soon. The TekNat Library will acquire one copy for loan.)
On-line material and referencesOn shared-memory parallel architecture concepts:
- J. Hennessy, D. Patterson: Computer Architecture, A Quantitative Approach, 4th ed.. Morgan Kaufmann, 2007. The second edition (1996), third edition (2002) and fourth edition (2007) each contain a chapter on multiprocessor architecture. The TekNat library has copies. As an alternative:
- D. Culler, J. Singh, A. Gupta: Parallel Computer Architecture. Morgan Kaufmann, 1998. Contains an in-depth treatment of SMP and CC-NUMA shared-memory architectures.
- Maged M. Michael:
The Balancing Act of Choosing Nonblocking Features.
Communications of the ACM 56(9), Sep. 2013.
- W. Hillis, G. Steele: Data parallel algorithms. Comm. ACM 29(12), Dec. 1986
- C. Kessler, J. Keller: Models for parallel computing: Review and Perspectives. PARS-Mitteilungen 24: 13-29, ISSN 0177-0454, Dec. 2007. Gesellschaft für Informatik e.V., Germany.
- J. Keller, C. Kessler, J. Träff:
Practical PRAM Programming. Wiley Interscience, 2001.
Chapter 2 gives a summary of the PRAM model and introduces basic theory of parallel processing (Time, work, cost, Amdahl's law, Brent's theorem, fundamental parallel algorithms). The book is available in the TekNat-Library.
- M. Hill, M. Marty: Amdahl's Law in the Multicore Era. IEEE Computer 41(7): 33-37, July 2008.
- M. Garland, D. Kirk: Understanding Throughput-Oriented Architectures. Communications of the ACM 53(11), Nov. 2010.
- J. A. Stratton et al.: Algorithm and data optimization techniques for scaling to masssively threaded systems. IEEE Computer 44(8), Aug. 2012, pp. 26-32.
Page responsible: Christoph W Kessler
Last updated: 2013-10-29