We give an axiomatic description of parallel, synchronous algorithms. Our main result is that every such algorithm can be simulated, step for step, by an abstract state machine with a background that provides for multisets.The following corollary is a trivial consequence of the definitions, but we mention it explicitly for emphasis. COROLLARY 2.4. Equivalent algorithms have the same pure runs.Remark 2.5. It is reasonable to ask about impure runs-runs that involve some intervention by the external world. The situation is quite simple as long as we assume that the environment intervenes only between steps of the algorithm. That is, we suppose that a run is a sequence of states in which the first state is initial and each subsequent state comes from its immediate predecessor either by the algorithm's transition function (as in a pure run) or by an action of the environment. Then, if two algorithms are equivalent, every run of either algorithm is also a run of the other, involving exactly the same interventions of the environment (at exactly the same steps).The situation is much less clear if the environment can intervene during a step of the algorithm. Indeed, it is not even clear in this case what it would mean for runs of two equivalent algorithms to involve the same interventions of the environment, since equivalence of algorithms does not require any similarity between the internal structure (if any) of the algorithms' steps.There is, however, a reasonably clear case, namely the one in which the environment assigns values to certain functions, called external functions, and these values do not change during any one step of the algorithm. In this case, it does no harm to pretend that the values of external functions were assigned at the beginning of each step of the algorithm, and this means in effect that the environment's actions occur between the algorithm's steps. So we are back in the easy situation discussed above.Notice that this sort of action by the environment covers non-determinism, for we can regard non-deterministic choices as being given by external functions. A slightly more involved argument justifies the importing of new elements from the reserve; see Gurevich [1997].More general interventions of an environment within a step, for example replies to an algorithm's calls of external routines, appear to be useful in modeling and therefore should be considered, but we do not deal with them in this paper. Our goal is simply to prove equivalence, as defined above, between arbitrary parallel algorithms and abstract state machines. Accordingly, we shall not treat environments except in the present remark and one appearance of non-determinism in Section 8.
A SIMPLIFIED PICTUREIn this section, we consider an oversimplified view of parallel algorithms, designed to remain close to the ideas of Gurevich [2000] while exhibiting some of the new phenomena involved with parallelism.A key observation for our treatment is that a parallel computation consists of a number of processes running (not surprisingly) in p...