Lecture Schedule

January
 
18            Course overview

  23            Basics of computer architecture: Areg Melik-Adamyan (Intel)
 
  25            Measurements: timing and PAPI counters

  30            Basics of modern compilers: Areg Melik-Adamyan (Intel)       

February
    1  
          Sources of parallelism and locality in important algorithms (4 lectures):
                          Graph algorithms
                          Additional reading: The TAO of Parallelism in Programs, Pingali et al, PLDI 2011.
    6                   
    8                    Computational science algorithms
  13                    Video of Miss Marple solving differential equations

  15            Dependences, dependence graphs, work/span, scheduling

  20            Cache architecture and memory hierarchy: Areg Melik-Adamyan (Intel)

  22            Locality, loop and data transformations

  27            Case study of locality enhancement: GEMM and ATLAS

March
    1
            Intel VTune (I) for cache performance analysis: Jackson Marusarz (Intel)          

    6            Vectorization (2 lectures): Mike Voss (Intel)
    8

  13            Spring break
  15

  20            Shared-memory architectures: cache-coherence

  22            pThreads programs (2 lectures)
  27 
          

  29           
Case study of vectorization and Intel icc compiler: Mike Voss (Intel)
 
April
    3            
Memory consistency  

    5           
OpenMP (2 lectures): Mike Voss (Intel)  
  10

  12            Intel Threading Building Blocks: Mike Voss (Intel)

  17            Intel Advisor: Jackson Marusarz (Intel)

  19            Intel VTune(II): Jackson Marusarz (Intel)

  24            Case study of shared-memory parallelization: Jackson Marusarz (Intel)

  26            MPI(I): Wesley Bland (Intel)

May
   1             MPI(II): Wesley Bland (Intel)
   3
            Final Exam