Consistent Breakpoints: Where are they?

Global states can be specified with respect to an abstract event. The entire process set of the computation can be partitioned into three equivalence classes from the perspective of an abstract event - processes where constituent primitive events of the abstract event occur forming the core set, those which can causally influence the abstract event but are not in the core set forming the influence set, and those which cannot causally influence the abstract event forming the other set. In the figure below, the abstract event is formed by the events within the thick dashed line. Processes 4,5,6 form the core set; 2,3 and 7 form the influence set, and 0 and 1 form the other set.

At the granularity of the abstract event, the user can ask to stop the computation immediately before the abstract event or immediately after it. In order to stop the global computation at a stage where information regarding the abstract event is still available, processes in the different states are stopped as follows:

  1. the processes in the other set should be stopped at their earliest state
  2. the processes in the influence set should be stopped immediately after the lastest event that could causally influence the abstract event.
  3. all the processes in the core set should either be stopped immediately before the earliest local event that is a part of the abstract event, or immediately after the latest local event that is a part of the abstract event (depending on the user request).
The same principle can be applied if the user enumerates a set of abstract events and use them to set a single global breakpoint.

ariadne overview
ariadne tutorial