You are here

Appendix I: Cross Reference Matrix – Core Courses vs. Topics

 

For ease of reference by adopters/instructors of core courses, here are the core courses cross-referenced with topics for the four areas, with information extracted from the previous four tables..

 

Table 5: Algorithm
Topics DS/A CS2
● Costs of computation:    
  Asymptotics 1  
  time 1  
  space 1  
  speedup 1  
     
● Cost reduction:    
     
  space compression, etc.    
● Cost tradeoffs:    
  time vs. space, 1  
  power vs. time, etc. 1  
● Scalability in algorithms and architectures 1  
● Model-based notions:    
  – Notions from complexity-theory:    
    PRAM 1  
    BSP/CILK 1  
    simulation/emulation,    
    P-completeness,    
    #P-completeness    
    Cellular automata    
  Notions from scheduling    
    dependencies, 1 1
    task graphs, 1  
    work, 1  
    (make)span 1  
     
● Divide & conquer (parallel aspects) 1 1
● Recursion (parallel aspects) 1 1
● Scan (parallel-prefix)    
● reduction (map-reduce)    
● Stencil-based iteration    
● Dependencies:    
  "oblivious” algorithms    
  blocking    
  striping    
  “out-of-core” algorithms    
● Series-parallel composition   1
● Graph embedding as an algorithmic tool    
     
● Communication:    
  broadcast, 1  
  multicast, 1  
  scatter/gather 1  
  gossip    
● Asynchrony   1
● Synchronization 1 1
Sorting 1 1
Selection 1 1
● Graph algorithms:    
  search    
  path selection    
● Specialized computations: 1 1
  convolutions    
  matrix computations    
  matrix product    
  linear systems    
  matrix arithmetic    
  matrix transpose    
Termination detection    
Leader election/symmetry breaking    

 

Table 6: Programming
Topics Systems DS/A CS2
Parallel Programming paradigms and Notations      
By the target machine model      
  SIMD 1   1
    Processor vector extensions 1    
  Shared memory   1 1
  Distributed memory 1 1  
  Client Server   1 1
  Hybrid 1    
By the control statement      
  Task/thread spawning   1 1
  SPMD   1 1
  Data parallel   1 1
    Parallel loops for shared memory   1 1
Semantics and correctness issues      
Tasks and threads   1 1
Synchronization   1 1
Concurrency defects 1 1  
Tools to detect concurrency defects 1 1  
Performance issues      
Computation   1 1
  Load balancing 1 1  
  Scheduling and mapping 1 1  
Data (distribution, layout, locality)   1  
Performance monitoring tools 1 1  
Performance metrics   1 1

 

Table 7: Architecture
Topics CS1 CS2 Systems
Superscalar (ILP)     1
SIMD/Vector (e.g., SSE, Cray)     1
Pipelines      
  (Single vs. multicycle)     1
  Data and control hazards      
  OoO execution      
Streams (e.g., GPU)     1
Dataflow      
MIMD     1
Simultaneous Multithreading (e.g., Hyperthreading)     1
Highly Multithreaded (e.g., MTA)      
Multicore     1
Cluster      
Heterogeneous (e.g., Cell)     1
Grid/cloud   1  
       
SMP      
  Buses     1
NUMA (Shared Memory)      
  CC-NUMA      
  Directory-based CC-NUMA      
Message passing (no shared memory)      
  Topologies     1
  Diameter     1
  Latency     1
  Bandwidth     1
  Circuit switching      
  Packet switching      
  Routing      
  Cache organization     1
  Atomicity      
  Consistency      
  Coherence      
  False sharing      
  Impact on software      
Range 1 1 1
Precision 1 1 1
Rounding issues      
Error propagation      
754 standard     1
cycles per instruction (CPI)     1
Benchmarks     1
  Spec mark     1
  Bandwidth benchmarks      
Peak performance     1
  MIPS/FLOPS     1
Sustained performance     1
  LinPack      

 

Table 8: Crosscutting
Topics \ Where Covered CS1 CS2 Systems DS/A
High level themes:        
  Why and what is parallel/distributed computing? 1 1    
Crosscutting topics:        
  Concurrency   1   1
  Non-determinism     1 1
  Power     1 1
  Locality     1 1
Current/Hot/Advanced Topics        
  Cluster   1 1 1
  cloud/grid   1 1 1
  p2p 1 1    
  fault tolerance     1  
  Security in Distributed System     1  
  Distributed transactions 1 1    
  web search 1 1    
  Social Networking/Context        
  Collaborative Computing        
  performance modeling        
  web services        
  pervasive computing        
  mobile computing