Hide menu

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).
In principle you should be able to follow the course based on the OH material and the online references (e.g., articles) given further below.
If you prefer to work with a textbook, we recommend that you choose one general 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. We also give a selection of reference books for secondary reading below.
All books listed below should be available in the TekNat library on the campus, some also as reference copy or e-books.

  • 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.)
  • David B. Kirk and Wen-mei W. Hwu: Programming Massively Parallel Processors: A Hands-on Approach.
    Morgan Kaufmann, 2010 (first edition), 2012 (second edition). 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. Addison-Wesley, 2003.
    (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 references

On 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.
On non-blocking synchronization: On the design and analysis of parallel algorithms:
  • 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.
On GPU architecture and programming: This list may be extended during the course.

Page responsible: Christoph W Kessler
Last updated: 2014-10-24