Office hours: Tuesday 1-2pm at POB 4.126
        TA: Roshan Dathathri (roshan@cs.utexas.edu)
        TA office hours: Friday 11am-noon at POB 4.116
        Canvas: https://utexas.instructure.com/courses/1128191 for assignment submissions and grades.
        Piazza: https://piazza.com/utexas/spring2015/cse392cs378/ for announcements and discussions.
     
    
      To obtain the high level of end-to-end performance needed in
        problem domains like graphics, computer games, and scientific
        computing, it is necessary for programs to exploit many of the
        features of modern computer architectures.  In this course,
        we will study the performance-critical features of modern
        computer architectures, and discuss how applications can take
        advantage of them to obtain high performance.  This is not
        a course on software tricks; rather, the emphasis is on
        abstractions of computer architecture, understanding
        performance, and obtaining performance when you need it. 
      
      Topics include the following:
      
      
        - Analysis of applications that need high end-to-end
          performance
 
- Understanding performance: performance models, Amdahl's law
- Measurement and design of computer experiments
- Microbenchmarks for abstracting performance-critical aspects
          of computer systems
- Memory hierarchy: caches, virtual memory, exploiting spatial
          and temporal locality
 
- Vectors and vectorization
- GPUs and GPU programming
 
- Multi-core processors and shared-memory programming, OpenMP
 
- Distributed-memory machines and message-passing programming,
          MPI
 
- Optimistic parallelization
 
- Self-optimizing software
  There will be 4 or 5 substantial programming assignments
        and a final project.
      
      Prerequisites:
        programming maturity, knowledge of C/C++, basic course on modern
        computer architecture
      
       
      For basic material on computer architecture, read "Computer
      Architecture: A Quantitative Approach" 
      by Hennessy & Patterson, Morgan Kaufmann Publishers.
      
      
Grading:
      
          - Assignments (4-5): 55%
- Mid-term exams (one or two): 20%
- Final project: 25%