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:
- the processes in the other set should be stopped at their earliest state
- the processes in the influence set should be stopped immediately after the lastest
event that could causally influence the abstract event.
- 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