You are previewing Distributed Computing Through Combinatorial Topology.
O'Reilly logo
Distributed Computing Through Combinatorial Topology

Book Description

Distributed Computing Through Combinatorial Topology describes techniques for analyzing distributed algorithms based on award winning combinatorial topology research. The authors present a solid theoretical foundation relevant to many real systems reliant on parallelism with unpredictable delays, such as multicore microprocessors, wireless networks, distributed systems, and Internet protocols.

Today, a new student or researcher must assemble a collection of scattered conference publications, which are typically terse and commonly use different notations and terminologies. This book provides a self-contained explanation of the mathematics to readers with computer science backgrounds, as well as explaining computer science concepts to readers with backgrounds in applied mathematics. The first section presents mathematical notions and models, including message passing and shared-memory systems, failures, and timing models. The next section presents core concepts in two chapters each: first, proving a simple result that lends itself to examples and pictures that will build up readers' intuition; then generalizing the concept to prove a more sophisticated result. The overall result weaves together and develops the basic concepts of the field, presenting them in a gradual and intuitively appealing way. The book's final section discusses advanced topics typically found in a graduate-level course for those who wish to explore further.



  • Named a 2013 Notable Computer Book for Computing Methodologies by Computing Reviews
  • Gathers knowledge otherwise spread across research and conference papers using consistent notations and a standard approach to facilitate understanding
  • Presents unique insights applicable to multiple computing fields, including multicore microprocessors, wireless networks, distributed systems, and Internet protocols
  • Synthesizes and distills material into a simple, unified presentation with examples, illustrations, and exercises

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Dedication
  6. Acknowledgments
  7. Preface
    1. Companion Site
  8. Part 1: Fundamentals
    1. Chapter 1. Introduction
      1. Abstract
      2. 1.1 Concurrency everywhere
      3. 1.2 Distributed computing
      4. 1.3 Two classic distributed computing problems
      5. 1.4 Chapter notes
      6. 1.5 Exercises
    2. Chapter 2. Two-Process Systems
      1. Abstract
      2. 2.1 Elementary graph theory
      3. 2.2 Tasks
      4. 2.3 Models of computation
      5. 2.4 Approximate agreement
      6. 2.5 Two-process task solvability
      7. 2.6 Chapter notes
      8. 2.7 Exercises
    3. Chapter 3. Elements of Combinatorial Topology
      1. Abstract
      2. 3.1 Basic concepts
      3. 3.2 Simplicial complexes
      4. 3.3 Standard constructions
      5. 3.4 Carrier maps
      6. 3.5 Connectivity
      7. 3.6 Subdivisions
      8. 3.7 Simplicial and continuous approximations
      9. 3.8 Chapter notes
      10. 3.9 Exercises
  9. Part 2: Colorless Tasks
    1. Chapter 4. Colorless Wait-Free Computation
      1. Abstract
      2. 4.1 Operational model
      3. 4.2 Combinatorial model
      4. 4.3 The computational power of wait-free colorless immediate snapshots
      5. 4.4 Chapter notes
      6. 4.5 Exercises
    2. Chapter 5. Solvability of Colorless Tasks in Different Models
      1. Abstract
      2. 5.1 Overview of models
      3. 5.2 t-Resilient layered snapshot protocols
      4. 5.3 Layered snapshots with k-set agreement
      5. 5.4 Adversaries
      6. 5.5 Message-passing protocols
      7. 5.6 Decidability
      8. 5.7 Chapter notes
      9. 5.8 Exercises
    3. Chapter 6. Byzantine-Resilient Colorless Computation
      1. Abstract
      2. 6.1 Byzantine failures
      3. 6.2 Byzantine communication abstractions
      4. 6.3 Byzantine set agreement
      5. 6.4 Byzantine barycentric agreement
      6. 6.5 Byzantine task solvability
      7. 6.6 Byzantine shared memory
      8. 6.7 Chapter notes
      9. 6.8 Exercises
    4. Chapter 7. Simulations and Reductions
      1. Abstract
      2. 7.1 Motivation
      3. 7.2 Combinatorial setting
      4. 7.3 Applications
      5. 7.4 BG simulation
      6. 7.5 Conclusions
      7. 7.6 Chapter notes
      8. 7.7 Exercises
  10. Part 3: General Tasks
    1. Chapter 8. Read-Write Protocols for General Tasks
      1. Abstract
      2. 8.1 Overview
      3. 8.2 Tasks
      4. 8.3 Examples of tasks
      5. 8.4 Protocols
      6. 8.5 Chapter notes
      7. 8.6 Exercises
    2. Chapter 9. Manifold Protocols
      1. Abstract
      2. 9.1 Manifold protocols
      3. 9.2 Layered immediate snapshot protocols
      4. 9.3 No set agreement from manifold protocols
      5. 9.4 Set agreement vs. weak symmetry breaking
      6. 9.5 Chapter notes
      7. 9.6 Exercises
    3. Chapter 10. Connectivity
      1. Abstract
      2. 10.1 Consensus and path connectivity
      3. 10.2 Immediate snapshot model and connectivity
      4. 10.3 k-Set agreement and (k-1)-connectivity
      5. 10.4 Immediate snapshot model and k-connectivity
      6. 10.5 Chapter notes
      7. 10.6 Exercises
    4. Chapter 11. Wait-Free Computability for General Tasks
      1. Abstract
      2. 11.1 Inherently colored tasks: the hourglass task
      3. 11.2 Solvability for colored tasks
      4. 11.3 Algorithm implies map
      5. 11.4 Map implies algorithm
      6. 11.5 A sufficient topological condition
      7. 11.6 Chapter notes
      8. 11.7 Exercises
  11. Part 4: Advanced Topics
    1. Chapter 12. Renaming and Oriented Manifolds
      1. Abstract
      2. 12.1 An upper bound: renaming with 2n+1 names
      3. 12.2 Weak symmetry breaking
      4. 12.3 The index lemma
      5. 12.4 Binary colorings
      6. 12.5 A lower bound for 2n -renaming
      7. 12.6 Chapter notes
      8. 12.7 Exercises
    2. Chapter 13. Task Solvability in Different Models
      1. Abstract
      2. 13.1 Shellability
      3. 13.2 Examples
      4. 13.3 Pseudospheres
      5. 13.4 Carrier maps and shellable complexes
      6. 13.5 Applications
      7. 13.6 Chapter notes
      8. 13.7 Exercises
    3. Chapter 14. Simulations and Reductions for Colored Tasks
      1. Abstract
      2. 14.1 Model
      3. 14.2 Shared-memory models
      4. 14.3 Trivial reductions
      5. 14.4 Layered snapshot from read-write
      6. 14.5 Immediate snapshot from snapshot
      7. 14.6 Immediate snapshot from layered immediate snapshot
      8. 14.7 Snapshot from layered snapshot
      9. 14.8 Chapter Notes
      10. 14.9 Exercises
    4. Chapter 15. Classifying Loop Agreement Tasks
      1. Abstract
      2. 15.1 The fundamental group
      3. 15.2 Algebraic signatures
      4. 15.3 Main theorem
      5. 15.4 Applications
      6. 15.5 Torsion classes
      7. 15.6 Conclusions
      8. 15.7 Chapter notes
      9. 15.8 Exercises
    5. Chapter 16. Immediate Snapshot Subdivisions
      1. Abstract
      2. 16.1 A glimpse of discrete geometry
      3. 16.2 Chapter notes
      4. 16.3 Exercises
  12. Bibliography
  13. Index