CSE 160 Lecture and Reading Schedule (Fall 2008)

This schedule may change, so check frequently. Lecture slides will be made available after lecture.

Lecture Date Subject
1 9/25 Overview. Text, pp. 1-8.
2 9/29 Memory hierarchies, address organization, parallel computer architecture, PRAMs
Text, pp. 30-47, 53-55;
  • Wikipedia entry on CPU Cache
  • 3 10/2 Introduction to programming with threads.
    Text, pp. 8-13, 15-24, pp. 145-153.
    Also look over the tutorial POSIX Threads Programming, through §6.
    On-line resources on threads
    4 10/7 Performance. Synchronization with Semaphores.
    Text, Chapter 3 (pp. 61-85).
    The Little Book of Semaphores, by Allen Downey, Ch. 2 (3 pages), Ch. 3, §3.1-3.3.
    5 10/10 Caches: coherence and consistency
    Multithreaded iterative stencil methods
    Text, pp, 174-187;
    Gregory F. Pfister, In Search of Clusters, 2nd Ed, Prentice Hall, 1998, pp. 235-268.
    Class rescheduled for Friday 10/10, CSB 004, 2:00 to 3:20.
    6 10/14 Synchronization: FIFO, Queues, and classical problems.
    The Little Book of Semaphores, by Allen Downey, Ch. 3: pp. 45-59, Ch. 4: pp. 65-72.
    Text, re-read pp. 34-36.
    Notes on shared memory

    For further reading
    "The SGI Origin: a ccNUMA highly scalable server," J. Laudon and D. Lenoski, Proc. 24th ISCA, pp 241-251, 1997. DOI
    Origin 2000 and Onyx2 Performance Tuning and Optimization Guide, esp. Ch. 1-2.
     

    7
    (Continues from Lecture 6)
    10/16 NUMA Performance (Continued from Lecture 6)
    Gregory F. Pfister, In Search of Clusters, 2nd Ed, Prentice Hall, 1998, pp. 185-192,196-198.
    The false sharing example and the page migration plots come from this source: Origin 2000 and Onyx2 Performance Tuning and Optimization Guide, Chapter 8, see Scalability and Data Placement
    8 10/21 Performance Programming.
    Text, Ch. 11, pp. 305-320.
    Optimizing fast linear algebra kernels for the memory hierarchy (Jim Demmel, UC Berkeley). Ignore algorithm 2.
    9 10/23 More on performance programming. Experimentation techniques.
  • Misleading Performance Reporting in the Supercomputing Field, by David H. Bailey. Scientific Programming, vol. 1., No. 2 (Winter 1992), pp. 141-151.
  • §9.1-2   from Ian Foster's Designing and Building Parallel Programs (Addison Wesley).
  • 10 10/28 Midterm review.
    11 10/30 MIDTERM
    12 11/4 Threaded Program Design
  • Programming Guidelines, Chapter 9, Multithreaded Programming Guide, Sun Microsystems.
  • Pthread Overview, pp. 1-14, 19-23, 27-28. (Also available in html)
  • For reference
  • Posix Threads Programming, by Blaise Barney.
  • IBM Documentation. Although these contain AIX-specific material, they also cover the general principles.
  • Developing and Porting C and C++ Applications on AIX, IBM Red Book, Chapter 8 (POSIX Threads)
  • Performance Management Guide. CPU scheduling and many other details concerning performance.
  • General Programming Conceptsw: Writing and Debugging Programs (Multi-threaded programming)
  • 13 11/6 Code development; performance
    Sphinx parallel microbenchmarks (code includes pthreads and openmp)
    14 11/7 Design and construction of an OpenMP program.
    Introduction to Parallel Computing, 2nd Ed. Grama, Gupta, Karypis, and Kumar, Benjamin-Cummings, 2003: Ch. 7, pp. 311-331.
    Lecture notes posted
    For reference:
    Getting started with OpenMP (Intel)
    Makeup lecture [of 11/18] to be held on Friday 11/7, 2:00 to 3:20 PM, in CSB 002.
    There will be no section this week.
     
      11/11 Veteran's Day Holiday. No class.
    15 11/13 Lecture notes posted
    Performance programming: profiling, vectorization.
  • Programming Guidelines for Vectorizing C/C++ Compilers, A. Bik et al. Dr. Dobb’s Journal, 2/1/03. (6 pp.) (Alternatively: Wikipedia article on Vectorization)
  • Intel SSE (2 pp.)
  • For Further Reading:
  • Vectorization of Multigrid Codes using SIMD ISA extenstions
  • The Software Optimization Cookbook, Ed. 2, R Gerber et al., 2006, Intel Press.
  • References to materials on Vectorization and SSE instructions
  •   11/18 There will be no lecture on this date.
    section 11/20 This week's section will be during our regularly scheduled Thursday lecture time.
    16 11/21 Programming with message passing.
    Text: Chapter 7, pp.202-222.
    For further reading: A User’s Guide to MPI, by Peter Pacheco, pp. 1-17.   pdf
    This week's Thursday lecture will be held on Friday, 11/21, 2:00 to 3:20 in CSB 002.
    Section will be held on Thursday instead.
    17 11/25 Applications of MPI; performance.
    Reading: Modeling performance of an image smoother     PDF
    Lecture notes posted
      11/27 No class. Happy Thanksgiving!
    18 12/2 Lecture slides have been posted
    Leading edge technologies.
    Reading:
  • NVIDIA Tesla: A Unified Graphics and Computing Architecture, by E. Lindholm et al., IEEE Micro, March-April 2008, Vol. 28, Issue 2, pp. 39-55.
    (IEEE Digital Library, accessible from any campus machine. If you have a UCSD network account, then you may use the UCSD Web proxy which will enable you to access restricted content from non-UCSD Internet service providers.)
  • Additional resources for Nvidia, Cell, and Blue Gene.
  • GPGPU resources
  • 19 12/4 Final Exam Review.
    Slides posted
      12/10 Final Exam: 11:30 am to 2:30 pm in WLH 2205 (usual meeting place)


    Fri Nov 14 06:54:42 PST 2008

    Scott B. Baden © 2008 Department of Computer Science and Engineering
    University of California, San Diego
    La Jolla, California, USA