Nancy Lynch
NEC Professor of Software Science and Engineering, and Professor of Electrical Engineering and Computer Science at MIT. Ph.D. - MIT.

Note: the following books are not recommended by Professor Lynch. They are books that have been used as reference texts in one/some courses she has taught.

Distributed algorithms are a subfield of electrical engineering and computer science that deals with the design, analysis and implementation of algorithms that can be executed in a distributed system. A distributed system is a collection of autonomous processors that work together to accomplish a common goal. These processors are connected via a network and can communicate with each other. Distributed algorithms are used in a wide range of applications, such as distributed computing, distributed databases, and distributed control systems.

One of the key concepts in distributed algorithms is the concept of distributed coordination. Distributed coordination is the process of coordinating the actions of the processors in a distributed system. It ensures that the processors are working together to accomplish a common goal and that the system is operating correctly. Distributed coordination is essential for the correct operation of a distributed system and is used in a wide range of distributed algorithms.

Another important concept in distributed algorithms is the concept of fault-tolerance. Fault-tolerance is the ability of a distributed system to continue operating correctly even in the presence of faults. Distributed algorithms must be designed to be fault-tolerant, in order to ensure that the system can continue to operate correctly in the presence of faults.

Consensus is another important concept in distributed algorithms. Consensus is the process of reaching agreement among the processors in a distributed system. Consensus algorithms are used to ensure that the processors in a distributed system agree on the value of a particular variable, such as the value of a shared counter.

Synchronization is another key concept in distributed algorithms. Synchronization is the process of coordinating the actions of the processors in a distributed system so that they are executed in a specific order. Synchronization is essential for the correct operation of a distributed system and is used in a wide range of distributed algorithms, such as distributed mutual exclusion and distributed clocks.

Another important concept in distributed algorithms is the concept of distributed communication. Distributed communication is the process of exchanging information between the processors in a distributed system. It is essential for the correct operation of a distributed system and is used in a wide range of distributed algorithms, such as distributed leader election and distributed snapshot.

In conclusion, distributed algorithms are a subfield of electrical engineering and computer science that deals with the design, analysis and implementation of algorithms that can be executed in a distributed system. Distributed algorithms are used in a wide range of applications, such as distributed computing, distributed databases, and distributed control systems. Key concepts in distributed algorithms include distributed coordination, fault-tolerance, consensus, synchronization and distributed communication. To ensure that distributed systems operate correctly and efficiently, it is crucial to keep up with the latest developments in the field of distributed algorithms.