Themes
Coordinating and orchestrating a bunch of processes. There is no tight coordination amongst processes. Coming to an agreement.
Usually don’t care about efficiency: just try to prove safety and correctness.
Parallel programming paradigms- These are considred in the programming languages survey.
Characterization of research effort
Safety and correctness: Use of formal methods
Makes heavy use of formal methods of proving program correctness. With formalism, proofs tend to be shorter and more elegant than ‘intuitive’ proofs.
Once you axiomatize the system well, you don’t make much use of intuition. You make heavy use of theorems that are not intuitive.
Efficiency: Implementation, Engineering
Design and implimentation of good API’s.
Problems
Agreement on public randomness
n players with n random coin-tosses; communicate by broadcasting. t bad players broadcast last. How to calculate public coin toss while tolerating mischief of bad players?