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

CS181d - Architecture Aware Algorithms - Spring 2012
T 1:15-2:45 in Lincoln 1135
Prof. Chen

5/20/2014: I've archived all of the notes and problem sets (ie, most of the links below don't work) 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 or here.


Please check here regularly for assorted announcements. You are responsible for being aware of any information posted here.
  • information on project (including ideas) here
  • optional: schedule a meeting to discuss project either 2/28-3/2 or 3/6-3/8. Email me a few possible times for you and I'll confirm. I am likely to be free Wednesday/Thursday morning or Friday almost anytime.
  • class on 1/24 cancelled
  • Information

    What does theory look like in practice? In this half-credit class we will survey work on algorithms that are designed to run efficiently on modern computer architectures. In our weekly meetings we will read, present, and discuss research papers. For the final project students will design, implement, and/or evaluate an architecture aware algorithm.

    Prerequisites: cs/math55 (discrete math) and 105

    We'll meet Tuesdays from 1:15-2:30 in Lincoln 1135


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

    Week Date In class Reading for class To turn in
    1 (Tue) 1/17 administrivia, overview, review of memory hierarchy
    pdf of slides
    • cs105 material on memory hierarchy
    2 (Tue) 1/24 *** CANCELLED ***
    3 (Tue) 1/31 cache-aware algorithms, case study: matrix multiplication
    pdf of slides
    exercise 1: memory microbenchmark
    4 (Tue) 2/7 cache-aware algorithms, case study: sorting
    pdf of slides
    exercise 2: compiler flags
    5 (Tue) 2/14 pebbling games, out-of-core algorithms
    pdf of slides
    6 (Tue) 2/21 cache-oblivious algorithms
    pdf of slides, thoughts on final project
    exercise 3: sorting
    7 (Tue) 2/28 parallel algorithms
    pdf of slides
    1 paragraph on project
    8 (Tue) 3/6 parallel algorithms
    pdf of slides
    1/2-1 page project proposal, 1-3 references (including 1 for class)
    (Tue) 3/13 *** No class (spring break) ***
    9 (Tue) 3/20 background presentations (Eric, John, Sarah) revised proposal + outline + sources
    10 (Tue) 3/27 background presentations (Camille, Chris and Lindsay, Xanda and Dominick, Stephen, Emil)
    11 (Tue) 4/3 background presentations (Emil) and tbd
    12 (Tue) 4/10 graph partitioning
    13 (Tue) 4/17 graph clustering (optional) draft of writeup
    14 (Tue) 4/24 presentations (starting at 12:45, lunch provided at 12:30)
    • Stephen
    • John
    • Sarah
    • Chris and Lindsay
    • Xanda and Dominick
    • Eric
    • Emil
    15 (Tue) 5/1 *** No class (HMC presentation days) *** final paper due by 10pm.


  • "Computers do not solve problems, they execute solutions"
    --Laurent Gasser