Computer Architecture

  1. Parallel and Distributed Computing
    1. Parallel Architectures
      1. Single Instruction, Multiple Data (SIMD)
        1. Characteristics of SIMD Architectures
          1. Data-level Parallelism
            1. Use in Vector Processors and GPUs
            2. Applications of SIMD
              1. Image and Signal Processing
                1. Real-time Systems
                  1. Scientific Computing
                  2. Implementation Challenges
                    1. Memory Bandwidth
                      1. Synchronization Overheads
                    2. Multiple Instruction, Multiple Data (MIMD)
                      1. Characteristics of MIMD Architectures
                        1. Task Parallelism
                          1. Support for Concurrent Processes
                          2. Types of MIMD Systems
                            1. Shared Memory Systems
                              1. Uniform Memory Access (UMA)
                                1. Non-Uniform Memory Access (NUMA)
                                2. Distributed Memory Systems
                                  1. Message Passing Interfaces (MPIs)
                                    1. Remote Memory Access (RMA)
                                  2. Applications of MIMD
                                    1. Simulation and Modeling
                                      1. Database and Transaction Processing
                                      2. Implementation Challenges
                                        1. Load Balancing
                                          1. Interprocess Communication Overheads
                                      3. Parallel Programming Models
                                        1. Data Parallelism
                                          1. Parallel Loop Constructs
                                            1. Array Processing
                                            2. Task Parallelism
                                              1. Task Decomposition
                                                1. Coordination and Synchronization
                                                2. Shared Memory Models
                                                  1. POSIX Threads (Pthreads)
                                                    1. OpenMP
                                                      1. Synchronization Primitives (mutexes, semaphores)
                                                      2. Distributed Memory Models
                                                        1. Message Passing Interface (MPI)
                                                          1. Remote Procedure Calls (RPCs)
                                                            1. Scalability Concerns
                                                          2. Distributed Systems
                                                            1. Clusters
                                                              1. Components of a Cluster
                                                                1. Compute Nodes
                                                                  1. Network Interconnections
                                                                    1. Job Scheduling
                                                                    2. Advantages of Clustering
                                                                      1. High Availability
                                                                        1. Load Balancing
                                                                        2. Challenges in Cluster Management
                                                                        3. Grids
                                                                          1. Grid Infrastructure
                                                                            1. Resource Sharing
                                                                              1. Grid Middleware
                                                                              2. Types of Grids
                                                                                1. Scientific Grids
                                                                                  1. Data Grids
                                                                                  2. Grid Security and Policies
                                                                                  3. Clouds
                                                                                    1. Cloud Service Models
                                                                                      1. Infrastructure as a Service (IaaS)
                                                                                        1. Platform as a Service (PaaS)
                                                                                          1. Software as a Service (SaaS)
                                                                                          2. Cloud Deployment Models
                                                                                            1. Public Cloud
                                                                                              1. Private Cloud
                                                                                                1. Hybrid Cloud
                                                                                                2. Challenges in Cloud Computing
                                                                                                  1. Security and Privacy
                                                                                                    1. Data Transfer and Bandwidth
                                                                                                3. Interconnection Networks for Parallel Systems
                                                                                                  1. Types of Networks
                                                                                                    1. Bus-Based
                                                                                                      1. Crossbar Switches
                                                                                                        1. Mesh and Torus Networks
                                                                                                          1. Hypercube and Butterfly Networks
                                                                                                          2. Network Topology and its Impact
                                                                                                            1. Latency and Bandwidth Considerations
                                                                                                              1. Scalability of Networks
                                                                                                            2. Synchronization and Communication
                                                                                                              1. Synchronization Techniques
                                                                                                                1. Locks and Barriers
                                                                                                                  1. Condition Variables
                                                                                                                  2. Communication Patterns
                                                                                                                    1. Broadcast and Reduction
                                                                                                                      1. Scatter and Gather Operations
                                                                                                                        1. Point-to-Point Communication
                                                                                                                      2. Performance Metrics and Evaluation
                                                                                                                        1. Speedup and Efficiency
                                                                                                                          1. Amdahl's Law and its Limitations
                                                                                                                            1. Gustafson’s Law for Scalable Performance
                                                                                                                              1. Benchmarking Parallel Systems
                                                                                                                              2. Applications of Parallel and Distributed Computing
                                                                                                                                1. High-Performance Computing (HPC)
                                                                                                                                  1. Big Data Analytics
                                                                                                                                    1. Machine Learning and AI
                                                                                                                                      1. Real-Time Analytics and Streaming