Muutke küpsiste eelistusi

Cooperative Task-Oriented Computing: Algorithms and Complexity [Pehme köide]

Teised raamatud teemal:
Teised raamatud teemal:
Cooperative network supercomputing is becoming increasingly popular for harnessing the power of the global Internet computing platform. A typical Internet supercomputer consists of a master computer or server and a large number of computers called workers, performing computation on behalf of the master. Despite the simplicity and benefits of a single master approach, as the scale of such computing environments grows, it becomes unrealistic to assume the existence of the infallible master that is able to coordinate the activities of multitudes of workers. Large-scale distributed systems are inherently dynamic and are subject to perturbations, such as failures of computers and network links, thus it is also necessary to consider fully distributed peer-to-peer solutions.

We present a study of cooperative computing with the focus on modeling distributed computing settings, algorithmic techniques enabling one to combine efficiency and fault-tolerance in distributed systems, and the exposition of trade-offs between efficiency and fault-tolerance for robust cooperative computing. The focus of the exposition is on the abstract problem, called Do-All, and formulated in terms of a system of cooperating processors that together need to perform a collection of tasks in the presence of adversity. Our presentation deals with models, algorithmic techniques, and analysis. Our goal is to present the most interesting approaches to algorithm design and analysis leading to many fundamental results in cooperative distributed computing. The algorithms selected for inclusion are among the most efficient that additionally serve as good pedagogical examples. Each chapter concludes with exercises and bibliographic notes that include a wealth of references to related work and relevant advanced results.
Acknowledgments xi
1 Introduction 1(6)
1.1 Motivation and Landscape
1(2)
1.2 Book Roadmap and Conventions
3(4)
1.2.1 Roadmap
3(2)
1.2.2 Conventions
5(2)
2 Distributed Cooperation and Adversity 7(14)
2.1 Distributed Computing and Efficiency
7(5)
2.2 Cooperation Problem: Do-All Computing
12(1)
2.3 Computation and Adversarial Settings
13(4)
2.4 Fault Tolerance, Efficiency, and Lower Bounds
17(2)
2.5 Bibliographic Notes
19(2)
3 Paradigms and Techniques 21(20)
3.1 Algorithmic Paradigms
22(4)
3.1.1 Global Allocation Paradigm
22(1)
3.1.2 Local Allocation Paradigm
23(2)
3.1.3 Hashed Allocation Paradigm
25(1)
3.2 Algorithmic Techniques in the Shared-Memory Model
26(7)
3.2.1 Basic Techniques for Implementing Allocation Paradigms
26(5)
3.2.2 Techniques for Improving Algorithm Efficiency
31(2)
3.3 Algorithmic Techniques in the Message-Passing Model
33(5)
3.3.1 Basic Techniques for Implementing Allocation Paradigms
33(3)
3.3.2 Techniques for Improving Algorithm Efficiency
36(2)
3.4 Exercises
38(2)
3.5 Bibliographic Notes
40(1)
4 Shared-Memory Algorithms 41(38)
4.1 Algorithm W
41(10)
4.1.1 Description of Algorithm W
42(5)
4.1.2 Analysis of Algorithm W
47(2)
4.1.3 Improving Efficiency with Oversaturation
49(2)
4.2 Algorithm X
51(5)
4.2.1 Description of Algorithm X
51(2)
4.2.2 Analysis of Algorithm X
53(3)
4.3 Algorithm Groote
56(4)
4.3.1 A High-level View of the Algorithm.
56(2)
4.3.2 The Algorithm for p = 2k and n = mk
58(2)
4.4 Algorithm AWT
60(4)
4.4.1 Contention of Permutations
60(1)
4.4.2 Description of Algorithm AWT
61(1)
4.4.3 Analysis of algorithm AWT
62(2)
4.5 Algorithm TwoLevelAW
64(11)
4.5.1 Description of Algorithm TLAW(q, t)
65(6)
4.5.2 Analysis of Algorithm TLAW(q, t)
71(4)
4.6 Exercises
75(1)
4.7 Bibliographical Notes
76(3)
5 Message-Passing Algorithms 79(50)
5.1 Solving Do-All through Shared-Memory
80(8)
5.1.1 Message-Passing Setting, Quorums, and Adversity
80(2)
5.1.2 Shared-Memory Emulation Service AM
82(1)
5.1.3 The Message-Passing Algorithm XMP
83(2)
5.1.4 Algorithm Analysis
85(3)
5.2 Algorithm AN
88(8)
5.2.1 Data Structures and Phases of Algorithm AN
88(2)
5.2.2 Details of Algorithm AN
90(2)
5.2.3 Analysis of Algorithm AN
92(4)
5.3 Algorithm GKS
96(17)
5.3.1 The Gossip Problem
97(1)
5.3.2 Combinatorial Tools
98(1)
5.3.3 The Gossip Algorithm
99(6)
5.3.4 The Do-All Algorithm
105(8)
5.4 Algorithms KSAW and KSPA
113(12)
5.4.1 Adversarial Model, Complexity and Lower Bounds
113(3)
5.4.2 Family of Deterministic Algorithms KSAW
116(6)
5.4.3 Algorithm KSPA
122(3)
5.5 Exercises
125(1)
5.6 Bibliographical Notes
126(3)
6 The Do All Problem in Other Settings 129(12)
6.1 Do-All with Byzantine Processors
129(3)
6.2 Do-All with Broadcast Channels
132(1)
6.3 Do-All in Partitionable Networks
133(3)
6.4 Do-All in the Absence of Communication
136(5)
Bibliography 141(8)
Authors' Biographies 149(2)
Index 151