CS 880/479 : Programming Parallel and Distributed Systems


SFU Library Proxy for ACM Portal

SFU Library Proxy for IEEE Explore

Reading List (Constantly Updated)

John L. Hennessy and David A. Patterson, Computer Architecture: A Quantitative Approach, Morgan Kaufmann Publishers, Fourth Edition, 2008.

  1. Synchronization (Week 2: 4.5)
  2. Multithreading: Exploiting ILP to support TLP (Week 2)
  3. Introduction to Multiprocessors (Week 1: 4.1 )
  4. Symmetric Shared-Memory Architectures (Week 5: 4.2)
  5. Distributed Shared-Memory Architectures (optional)
  6. Models of Memory Consistency: An Introduction (week 5: 4.6)
  7. Putting It All Together: Sun T1 (optional)
Related sections from Chapter 3, Chapter 4, Chapter 5 (Online pdf for SFU CS 880/479 students only)

Introduction (Week 1)

Herb Sutter, The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software, Dr. Dobb's Journal, 30(3), March 2005. Html.

Introduction to Parallel Computing LLNL Web Site (html). Reference.

David A. Wood and Mark D. Hill, Cost-Effective Parallel Computing, IEEE Computer, February 1995. PDF

Herb Sutter and James Larus, Software and the Concurrency Problem, ACM Queue, September 2005, PDF

Queue - Multiprocessors, ACM Queue, September 2005 PDF Reference.


Multicore Processors (Week 1)

Poonacha Kongetira, Kathirgamar Aingaran, Kunle Olukotun, SUN Niagara : A 32-Way Multithreaded Sparc Processor, IEEE Micro pdf

Kunle Olukotun, Basem Nayfeh, Lance Hammond, Ken Wilson, and Kunyung Chang, The Case for a Single-Chip Multiprocessor Proceedings of the Seventh ACM Conference on Architectural Support for Programming Languages and Operating Systems., ASPLOS 2006. PDF.

Luiz Andre Barroso, et al., DEC's Multicore in 2000 (Piranha), Proc. International Symposium on Computer Architecture, June 2000. PDF Reference.

Programming (Week 2 -- 4)

POSIX Threads Programming, Web Site (html). Reference.

Steven Cameron Woo, Moriyoshi Ohara, Evan Torrie, Jaswinder Pal Singh, and Anoop Gupta, The SPLASH-2 Programs: Characterization and Methodological Considerations, Proc. International Symposium on Computer Architecture, June 1995. PDF

John M. Mellor-Crummey and Michael L. Scott, Algorithms for Scalable Synchronization on Shared-Memory Multiprocessors ACM Trans. on Computer Systems. February 1991, pp. 21-65. PDF

Rob Von Behren , Jeremy Condit , Feng Zhou , George C. Necula , Eric Brewer, Capriccio: Scalable Threads for Internet Services Proc. Symposium on Operating System Principles, October 2003. PDF.

Programming (Week 6 )

LLNL OpenMP Tutorial, Web Site (html).

OpenMP: Simple, Portable, Scalable SMP Programming, Web Site (html). Reference.

CILK Programming, Web Site (html). Reference.


Bonus Suggested readings (Optional)


Multicore Processors (Week 1)

How much Parallelism is available ?

    Emily Fortuna, Owen Anderson, Luis Ceze, Susan Eggers, A Limit Study of JavaScript Parallelism Proc Intl. Symposium on Workload Characterization , Dec 2010 PDF

    Geoffrey Blake, Ronald G. Dreslinski, Trevor Mudge and Krisztian Flautner, Evolution of Thread-Level Parallelism in Desktop Applications. The 37th ISCA, June 2010 PDF

    Milind Kulkarni, Martin Burtscher, Rajasekhar Inkulu, Keshav Pingali and Calin Cascaval,How Much Parallelism is There in Irregular Applications?, In PPOPP 2009, PDF


Hardware Coherence (Week 5 )

    Alan Charlseworth The Sun Fireplane System Interconnect PDF

    Virtual Hierarchies to Support Server Consolidation, Michael R. Marty and Mark D. Hill International Symposium on Computer Architecture (ISCA), June 2007 PDF

    Arun Raghavan, Colin Blundell, and Milo M. K. Martin Token Tenure: PATCHing Token Counting Using Directory-Based Cache Coherence. In MICRO 2008 PDF


Software-based Multiprocessors (Week 6)

    Robert Stets, Sandhya Dwarkadas, Nikolaos Hardavellas et al., CASHMERE-2L: Software Coherent Shared Memory on a Clustered Remote-Write Network. In SOSP'97 PS

    Amza, C.; Cox, A.L.; Dwarkadas, S.; Keleher, P.; Honghui Lu; Rajamony, R.; Weimin Yu; Zwaenepoel, W. TreadMarks: shared memory computing on networks of workstations. In IEEE Computer PDF

    Steven K. Reinhardt, Robert W. Pfile, David A. Wood. Decoupled Hardware Support for Distributed Shared Memory. In ISCA 1996 PDF


Deterministic Computing

    Joseph Devietti, Brandon Lucia, Luis Ceze and Mark Oskin. DMP: Deterministic Shared Memory Multiprocessing In ASPLOS 2009 PDF

    Marek Olszewski, Jason Ansel, Saman Amarasinghe. Kendo: Efficient Deterministic Multithreading in Software. In ASPLOS 2009 PDF

    Derek R. Hower, Pablo Montesinos, Luis Ceze, Mark D. Hill, and Josep Torrellas Two Hardware-based Approaches for Deterministic Multiprocessor Replay PDF

    Overview paper Tom Bergan, Joseph Devietti, Nicholas Hunt and Luis Ceze. The Deterministic Execution Hammer: How Well Does it Actually Pound Nails? In Workshop on Determinism (WoDET w/ ASPLOS) 2011. PDF


GPU/Accelerator Architectures

    GPU Tutorial Webpage

    Larrabee: A Many-Core x86 Architecture for Visual Computing Intel PDF

    Carbon: architectural support for fine-grained parallelism on chip multiprocessors. In ISCA 2007 PDF