ii !"#$!%& ''''()*+$!,-' Principles of Distributed Computing Roger Wattenhofer
[email protected] Spring 2016 iv CONTENTS 7.4 Applications . 80 8 Locality Lower Bounds 85 8.1 Model . 85 8.2 Locality . 86 8.3 The Neighborhood Graph . 88 Contents 9 Social Networks 93 9.1 Small World Networks . 94 9.2 Propagation Studies . 100 10 Synchronization 105 1 Vertex Coloring 5 10.1 Basics . 105 1.1 Problem & Model . .5 10.2 Synchronizer α ............................ 106 1.2 Coloring Trees . .8 10.3 Synchronizer β ............................ 107 2 Tree Algorithms 15 10.4 Synchronizer γ ............................ 108 2.1 Broadcast . 15 10.5 Network Partition . 110 2.2 Convergecast . 17 10.6 Clock Synchronization . 112 2.3 BFS Tree Construction . 18 2.4 MST Construction . 19 11 Communication Complexity 119 11.1 Diameter & APSP . 119 3 Leader Election 23 11.2 Lower Bound Graphs . 121 3.1 Anonymous Leader Election . 23 11.3 Communication Complexity . 124 3.2 Asynchronous Ring . 24 11.4 Distributed Complexity Theory . 129 3.3 Lower Bounds . 26 3.4 Synchronous Ring . 29 12 Wireless Protocols 133 12.1 Basics . 133 4 Distributed Sorting 33 12.2 Initialization . 135 4.1 Array & Mesh . 33 4.2 Sorting Networks . 36 12.2.1 Non-Uniform Initialization . 135 4.3 Counting Networks . 39 12.2.2 Uniform Initialization with CD . 135 12.2.3 Uniform Initialization without CD . 137 5 Shared Memory 47 12.3 Leader Election . 137 5.1 Model . 47 12.3.1 With High Probability . 137 5.2 Mutual Exclusion . 48 12.3.2 Uniform Leader Election . 138 5.3 Store & Collect .