CPEN 415:Distributed Computing

Main block


History and overview of distributed computing, reasons for studying distributed computing, modern trends in distributing computing and application areas, role of distributed computing in computer engineering.  Design, engineering, and evaluation of modern distributed computers. Design: naming, synchronization, latency, and bandwidth. Architectural support: messages versus remote procedure calls versus shared memory models. Structural alternatives: master-slave, client-server, fully distributed, cooperating objects. Coupling: tight versus loose. Distributed filing systems and directory services. Verification, validation and maintenance issues in distributed computing. Fault tolerance and reliability. Replication and avoidabilty. Standards and protocols. Temporal concerns. Data coherence. Load balancing and scheduling. Scalability. Applications. Parallel programming models, communication primitives, programming and compilation techniques, multiprogramming workloads and methodology for quantitative evaluation.