CSE 160 Lecture and Reading Schedule (Winter 2010)

This schedule may change, so check frequently.
Lecture slides will be made available by 10AM the day of lecture.

Lecture Date Subject
1 1/5 Introduction.
  • Text: Chapters 1 and 2.
  • Background on memory hierarchies: Memory Hierarchy in Cache-Based Systems by Ruud van der Pas, 2002, Sun Microsystems. (Dated, but a nice introduction.). To dig deeper, consult the Wikipedia
  • 2 1/7 Introduction to programming with threads.
  • Text: Chapters 4 and 6, Chapter 13: pp. 172-173, 178 (SharedInteger, see PJ Documentation).
  • Javasoft Thread Tutorial. Read Concurrency and Processes and Threads
  • Download PJ and Program 1 (Program1.tgz) and Hello World (hello.tgz)
    3 1/12 Embarrassingly parallel applications; parallel for loops; data sharing; analyzing data dependencies.
    Text: Chapters 5 and 7. Re-read chapter 6,pp. §6.3-6.4 (pp. 80-87)
    4 1/14 Characterizing performance - speedup; Parallel image processing and generation
    Text: Chapters 8 and 11.
    5 1/19 Revisiting the Java Memory Model; Weak scaling; Cache Interference.
  • Text: Chapters 9 and 10.
  • Synchronization and the Java Memory Model, (Book supplement to Concurrent Programming in Java: Design Principles and Patterns, by Doug Lea, 2nd ed., Addison-Wesley, Nov. 1999, previously handed out in class)
  • To read further: Eliminate False Sharing, by Herb Sutter (Dr. Dobb’s Journal)
  • 6 1/21 Load balancing. Optimizing for Memory locality.
  • Text: Chapter 12
  • Optimizing fast linear algebra kernels for the memory hierarchy (Jim Demmel, UC Berkeley). Ignore algorithm 2.
  • 7 1/26 Reduction, synchronization in Java
  • Text: Chapter 13.
  • Read the Synchronization section (ALL) from The Java Tutorials
  • 8 1/28 Programming with Java Threads
  • Text: Chapter 15.
  • Three sections from The Java Tutorials: Processes and Threads, Thread Objects, and Atomic Variables.
  • Short reader on numerical integration, Royal Inst. of Technology, Stockholm.
  • For reference: Introduction to Java threads, by Donald G. Drake [1996].
  • 9 2/2 More on synchronization. Application Study: Protein sequence querying
  • Java theory and practice: Going atomic, IBM Developerworks. Read the Hardware synchronization primitives section through the ABA problem
  • Text: Chapter 37: §37.1-2 (pp. 703-8), §37.3 (pp 714-15), §37.5 (728-31), §37.8-9 (pp. 749-751)
  • 10 2/2 OpenMP; Image segementation
  • Text: Appendices A and D.
  • For reference: Getting started with OpenMP (Intel)
  • 11 2/9 Midterm review.
    12 2/11 Midterm.
    13 2/16 Message passing: programming and performance
    Text. Chapter 19 (all), Chapter 20 (In section 20.3 read about broadcast and reduce only).
    14 2/18 MPI, the Message Passing Interface
  • Text. Finish chapter 20 (but skip the section on Flood)
  • A User’s Guide to MPI, by Peter Pacheco, pp. 1-17.   pdf
  • 15 2/23 Message passing application design
  • Re-read A User’s Guide to MPI, by Peter Pacheco, pp. 1-17.   pdf
  • Modeling performance of an image smoother     PDF
  • 16 2/25 Collectives and their applications, advanced message passing techniques
  • Text. Chapter 24: Sec 24.1-2; Chapter 25: Sec 25.4, Chapter 27: Sec 27.3; Chapter 30.
  • Bucket sort (Wikipedia)
  • For reference: Sorting algorithms (Wikipedia)
  • 17 3/2 Data Decomposition and Irregular Problems
  • Reader on Data Decomposition and Load Balancing
  • For the programming lab. Text: Chapter 30.
  • 18 3/4 Bitonic sort; Graphical Processing Units
  • Reader on Bitonic sort
  • Scalable Parallel Programming with CUDA, J. Nickolls et al., ACM Queue, 6(2):40-53, March/April 2008. (Read only through page 48)
  • CUDA, Supercomputing for the Masses, by Rob Farber, parts I and II. (15 part article if you area interested in pursuing GPU programmer further, a good soruce of information)

  • To enquire further about GPUs
  • CUDA Zone. Articles, CUDA downloads and documentation. From there you can also enter the Developer zone.
  • GPU Resources A web page with other sources of information about GPUs.
  • 19 3/8 GPU Applications and Performance Programming
  • Scalable Parallel Programming with CUDA, J. Nickolls et al., ACM Queue, 6(2):40-53, March/April 2008. (Read about parallel reduction)
  • 20 3/11 Final Exam review.  
    - 3/16 Final Exam, 3pm to 6pm


    Maintained by baden @ ucsd.
    edu   [Wed Mar 10 21:57:14 PST 2010]