College of Engineering University of Wisconsin-Madison
Electrical and Computer Engineering The Fountain
ECE/CS 757 Advanced Computer Architecture II
Spring 2017

Last modified Monday, 25-Nov-2019 16:16:08 CST

Contact Information
Course Description
Course Schedule
Lecture Notes
Beta Book Chapters
Useful Links


Contact List:

Course mailing lists (only registered students can send messages):


Prof. Mikko Lipasti
Office: 3621 Engineering Hall
Office Hours: Tues 10-12am, Fri 9:30-11:30am
Email: mikko at

Course Description

This course covers parallelism and the design of parallel computers. Historically, parallel computers have been designed for the sole purpose of quickly solving large-scale computational problems like weather forecasting or molecular modeling (to name just two examples). These problems are usually expressed as a series of floating-point computations of large data sets stored in multidimensional arrays, and can usually be partitioned across multiple processors to achieve large-scale parallelism. However, within the last fifteen years, new applications for parallel computers have eclipsed these traditional numeric codes, and are the driving force behind the tremendous volume and revenue growth in the marketplace for parallel computers. These applications span all the way from commercial server workloads that run in managed datacenters, to heavily-threaded games and web browsers running on PCs and laptops, to massively data-parallel applications like graphics rendering. In other words, parallelism in applications and in hardware has become pervasive in our industry.

This course will study the nature of parallelism across these application domains, as well as the hardware required to support parallel execution. We will investigate techniques for detecting, increasing, and exploiting parallelism across this spectrum of workloads, and will study in detail the design of various components of parallel computer systems. The discussion will rely heavily on examples of real or proposed parallel designs.

Prerequisites: ECE 552 (or equivalent) and CS 537 (not strictly enforced). NOTE: ECE 752 is not a prerequisite for this course.

Refer to the course syllabus for additional details

There is no required textbook; we will rely on readings from the literature and other online resources. This book is a useful additional reference "Parallel Computer Organization and Design" by M. Dubois, M. Annavaram, and P. Stenström..

Course Schedule

Here is the course bibliography.

Guidelines for paper reviews.

Date Topic Read/Review
1/18, 1/20 Introduction Skim [1], Read [3], [4]
1/23, 1/25 In-class gem5 tutorial Review [2]
1/27 Cores, multithreading, multicore Skim [5], Read [6] & [7]
1/30 Class cancelled
2/1,2/3 Cores, multithreading, multicore cont'd Skim [5], Read [6] & [7]
2/6, 2/8 Lecture cancelled
2/10 MP Software Skim [8], Read [9], Review [10]
2/13,2/15 MP Memory Systems Skim [11]
2/17 MP Memory Systems Read [12]Ch. 2, Review [13]
2/20, 2/22, 2/24 Coherence & Consistency Read [12] Ch. 6-8
2/27, 3/1, 3/3 Coherence & Consistency Read [14] Ch. 3-5, Review [15]
3/6 Lecture cancelled
3/8 Catchup, midterm review
3/10 Midterm 1
3/13,3/15 Transactional Memory Read [16] Ch. 1 & 5, Review [17]
3/15,3/17 Interconnection Networks Read [18] Project proposal due 3/17
3/20,3/22,3/24 Spring Break Read a novel, for fun!
3/27 Interconnection Networks Review [19]
3/29,3/31 SIMD and MPP Read [20], Review [21]
4/3, 4/5 Clusters and GPGPUs Read Ch. 1 of [22]
4/7 Class cancelled
4/10, 4/12 Clusters and GPGPUs Read Ch. 1-3, 5 of [23]
4/14 Catchup and review
4/17 Midterm 2 in class
4/19,4/21 Class cancelled, project work Project status report due 4/21
4/24,4/26,4/28 Class cancelled, project work
5/1, 5/3 Project talks (see schedule below)
5/8 No final exam Final project report due 5/8

Lecture Notes

Updated as semester progresses

Beta Book Chapters, (c) Jim Smith

These are provided as additional reference material and are not required.

Please do not distribute these to students not enrolled for ECE 757!



To check your recorded exam, quiz, and paper review grades, log in to Learn@UW using your NetID and password (same as your as email username or your login), click on "2017 - SPRING" and then ECE/CS 757.

Course Project:

For the course project you will do a research-focused project. This may involve reimplementing an idea proposed in a paper we read in the class (or outside of class) or trying something new that you have come up with. The following link includes some possible suggestions for both options.

You should work in a team of 3 students. Teams of 4 are also possible, but require broader scope.

You will be required to do the following for the final project: ul>

  • Submit a 2 page proposal by 11:59PM on 3/17 using the learn@uw dropbox. This must detail what you plan to do, why you plan to do it, and how you plan to do it.
  • Submit a 2-3 page progress report by 11:59PM on 4/21 using the learn@uw dropbox. This must report your current progress on achieving the goals you set in your initial proposal, and how you will recover or reset your goals if you are behind.
  • Prepare an oral presentation of approximately 20 minutes (5 min. per team member, plus questions) for a scheduled slot during the last week of class. The talk should motivate the problem, describe what you did, and present some interesting results. Place your presentation slides in the learn@uw dropbox by 12noon on Monday 5/1 (one set of slides per group).
  • Submit a detailed final report by 11:59PM on 5/8 using the learn@uw dropbox. This should detail all relevant information about your project at an appropriate level of detail. Neatness, organization, and quality of writing will all count towards your grade.

    Note that originality is not required (however, it is encouraged) for the project, nor are "positive" results (in other words, you will not be penalized for finding that a proposed scheme does not work). You will be graded based on your effort and on the quality of your presentation and report.

    Suggested project topics

    Here are some guidelines for the project report.

    Schedule for Project Presentations

    Date & Time Project Name Team Members
    5/1 1:00pm Analysis of Sparse Convolutional Neural Networks Sabareesh Ganapathy, Manav Garg, Prasanna Venkatesh Srinivasan Slides
    5/1 1:25pm Binarized Neural Network on a CPU, GPU, and FPGA Daniel Lerner, Jared Pierce, Blake Wetherton, Jialiang Zhang Slides
    5/1 1:50pm Atomic Coherence and Neural Networks Brian Guttag, Ravi Raju, Carly Schulz, Heng Zhuo Slides
    5/3 1:00pm Reinforcement Learning For DRAM Controller Scheduling Pavan Holla, Ayush Gupta, Rangapriya Parthasarathy Slides
    5/3 1:25pm PInterNet Shunmiao Xu, Preyas Shah, Rahul Nayar, Fan Wu Slides
    5/3 1:50pm Everything you still don't know about synchronization and how it impacts scaling Anshu Raina, Mohit Verma, Suhas Pai, Yuvraj Patel Slides

    Useful Links:

    Note: if you have trouble accessing this page, contact Mikko Lipasti (