L1: Introduction to Distributed Computing
● Motivation
● Multiprocessor Vs. Multicomputer Systems
● Distributed Communication Models
○ Remote Procedure Call
○ Publish/Subscribe Model
○ Message Queues
● Design Issues & Challenges in Distributed Computing
L2: Logical Clocks
● Logical Time Introduction
● Implementing Logical Clocks
● Scalar Time
● Lamport Timestamps
● Vector Clocks
● Matrix Clock
● Differential Techniques
○ Singhal–Kshemkalyani’s Differential Technique
○ Fowler–Zwaenepoel’s Direct-Dependency Technique
● Physical Clock Synchronization: NTP
L3: Global Snapshot
● System Model & Definitions
● Snapshot Recording Algorithms
○ FIFO Channels
○ Non-FIFO Channels
● Necessary & Sufficient Conditions for Consistent Global Snapshots
L4: Terminology and Basic Algorithms
● Classifications & Basic Concepts
● Elementary Graph Algorithms
● Synchronizers
● Maximal Independent Set (MIS)
● Connected Dominating Set
L5: Message Ordering
● FIFO, Causal, and Total Ordering
● Group Communication
● Multicast Algorithms
L6: Termination Detection
● Algorithms for Detecting Global Termination
L7: Distributed Mutual Exclusion
● Token-based, Non-token-based, and Quorum-based Algorithms
● Lamport’s, Ricart–Agrawala, and Maekawa’s Algorithms
L8: Deadlock Detection
● Centralized & Distributed Deadlock Detection
● Chandy–Misra–Haas Algorithm
L9: Consensus and Agreement Algorithms
● Byzantine Generals Problem
● Consensus Algorithms for Crash Failures
● Consensus Algorithms for Byzantine Failures
● Byzantine Agreement Tree Algorithm
L10: Peer-to-Peer (P2P) Computing & Overlay Graphs
● Introduction to P2P Systems
● Characteristics & Performance Features
● Data Indexing & Overlays
○ Centralized Indexing
○ Distributed Indexing
○ Local Indexing
● Structured & Unstructured Overlays
● Challenges in P2P System Design
● Trust & Reputation Management
L11: Properties of Internet Graphs
● Power Law
● Clustering & Degree Distributions
L12: Security in Distributed Systems
● Man-in-the-Middle Attacks
● Sybil Attacks
● Trust Management in Distributed Systems
L13: Cluster Computing & Grid Computing - 1
● System Models for Distributed & Cloud Computing
● Cluster Architecture
○ Single-System Image
● Clustering for Massive Parallelism
○ Cluster Development Trends
○ Milestone Cluster Systems
● Design Objectives of Computer Clusters
● Cluster Organization & Resource Sharing
○ Resource Sharing in Clusters
● Node Architectures and MPP Packaging
L14: Cluster Computing & Grid Computing - 2
● Cluster System Interconnects
○ Crossbar Switch in Google Search Engine Cluster
● Share of System Interconnects over Time
● GPU Clusters for Massive Parallelism
● Cluster Job Scheduling Methods
○ Space Sharing
○ Time Sharing
○ Independent Scheduling
○ Gang Scheduling
○ Competition with Foreign (Local) Jobs
L15: Grid Computing
● Grid Architecture and Service Modeling
○ Grid History and Service Families
○ CPU Scavenging and Virtual Supercomputers
○ Open Grid Services Architecture (OGSA)
○ Data Intensive Grid Service Models
● Grid Resource Management and Brokering
○ Resource Management and Job Scheduling
○ Grid Resource Monitoring with CGSP
○ Service Accounting and Economy Model
○ Resource Brokering with Gridbus
L16: Internet of Things (IoT)
● IoT Architectures
● Security in IoT
● Applications of IoT
●