Book contents
- Frontmatter
- Contents
- Preface
- I Tools and Techniques
- II Applications
- 8 Data Structures
- 9 Geometric Algorithms and Linear Programming
- 10 Graph Algorithms
- 11 Approximate Counting
- 12 Parallel and Distributed Algorithms
- 13 Online Algorithms
- 14 Number Theory and Algebra
- Appendix A Notational Index
- Appendix B Mathematical Background
- Appendix C Basic Probability Theory
- References
- Index
12 - Parallel and Distributed Algorithms
from II - Applications
Published online by Cambridge University Press: 05 March 2013
- Frontmatter
- Contents
- Preface
- I Tools and Techniques
- II Applications
- 8 Data Structures
- 9 Geometric Algorithms and Linear Programming
- 10 Graph Algorithms
- 11 Approximate Counting
- 12 Parallel and Distributed Algorithms
- 13 Online Algorithms
- 14 Number Theory and Algebra
- Appendix A Notational Index
- Appendix B Mathematical Background
- Appendix C Basic Probability Theory
- References
- Index
Summary
In this chapter we discuss the solution of problems by a number of processors working in concert. In specifying an algorithm for such a setting, we must specify not only the sequence of actions of individual processors, but also the actions they take in response to the actions of other processors. The organization and use of multiple processors has come to be divided into two categories: parallel processing and distributed processing. In the former, a number of processors are coupled together fairly tightly: they are similar processors running at roughly the same speeds and they frequently exchange information with relatively small delays in the propagation of such information. For such a system, we wish to assert that at the end of a certain time period, all the processors will have terminated and will collectively hold the solution to the problem. In distributed processing, on the other hand, less is assumed about the speeds of the processors or the delays in propagating information between them. Thus, the focus is on establishing that algorithms terminate at all, on guaranteeing the correctness of the results, and on counting the number of messages that are sent between processors in solving a problem. We begin by studying a model for parallel computation. We then describe several parallel algorithms in this model: sorting, finding maximal independent sets in graphs, and finding maximum matchings in graphs. We also describe the randomized solution of two problems in distributed computation: the choice coordination problem and the Byzantine agreement problem.
- Type
- Chapter
- Information
- Randomized Algorithms , pp. 335 - 367Publisher: Cambridge University PressPrint publication year: 1995