[ news | information | lectures | problem sets | links ]

CS156 - Spring 2004
MW 2:45-4 in Andrew 157
Prof. Chen

8/11/2004: I've archived all of the notes and problem sets and am only leaving up the syllabus for reference. If you're looking for the material, you may be able to find a link to a more recent offering of the class here.


Please check here regularly for general announcements
  • 4/19: final presentation schedule:
  • Monday, 4/26: Alex, Kevin
  • Wednesday, 4/28: Adrian, Josh
  • The March 4th talk at HMC is no longer required for this class (it's been rescheduled for some unknown later date).
  • Information

    CS156 is an upper division computer science course on parallel computing. Its primarily goal is to give students an overview of the roles of computer architecture, languages, operating systems, networks, algorithms, and so on in the field of parallel computing. Lectures will discuss metrics for evaluating and techniques for improving parallel performance. We will also examine case studies of architectures, algorithms, and applications. CS140 and CS110/105 are prerequisites.

    There will be ~3 programming assignments and ~3 written assignments during the semester. Students will also be expected to do a final project.

    The spring 2004 version of CS156 meets on Mondays and Wednesdays from 2:45 to 4PM in Andrew 157.

  • Administrivia <pdf>
  • Lectures and Labs

    Any topic that's listed for a date in the future should be taken as tentative. Any topic that's listed for a date in the past is what was actually covered in that lecture.

    Week Monday Wednesday
    1/19 No class (classes start tomorrow) introduction, motivation (chapter 1)
    1/26 parallel architectures: intro & examples (2.1-2.3)
    SIMD machines, intro to distributed memory machines (2.4-2.5)
    2/2 more on NW topologies, shared memory architectures (2.4)
    discussion of matrix mult., shared memory protocols
    2/9 other architectures, programming models
    parallelizing an application, MPI (3.1,6.1-6.3)
    2/16 MPI continued, threads (6.1-6.3, 7.1-7.9)
    threads, other parallel languages (7.1-7.9)
    2/23 data & mixed parallel languages
    compiling for parallelism, parallel algorithm models
    3/1 discussion of AllReduce
    no class
    3/8 performance analysis (5.1-5.4)
    5C classes cancelled
    3/15 No class - spring break
    No class - spring break
    3/22 basic parallel algorithms (10.1-10.2)
    performance models (work-time, PRAM, BSP)
    3/29 performance models (logP), parallelizing applications
    4/5 paper presentations
    paper presentations
    4/12 partitioning, n-body problem
    n-body problem
    4/19 distributed data structures
    poisson equation
    4/26 project presentations
    project presentations
    5/3 multigrid, parallel genetic algorithms
    class cancelled, go to Presentation Days

    Problem Sets

  • Matrix multiplication, due 11:30PM on February 3.
  • Written problem set on parallel architectures <pdf>, due 2:45PM on February 16
  • Allreduce, due 11:30PM on February 29.
  • Written problem set <pdf>, due 2:45PM on March 10.
  • Links

  • Beowulf cluster at Harvey Mudd

  • MPI
  • MPI forum home page
  • information on the MPI standard
  • man pages for MPI routines
  • MPICH home page (includes man pages for MPI routines)
  • pthreads tutorial

  • There are three great branches of science: theory, experiment, and computation
    -- Trefethen maxim