In the previous section, we performed a detailed analysis of the mechanism that's used by the Graph type to execute a single super-step. However, graph algorithms typically involve several super-steps. For the bspgraph package users to be able to run generic graph algorithms using the system we are building, they require more fine-grained control over the execution of a sequence of super-steps.
Before executing a super-step, we need to reset the value of one or more aggregators. Likewise, after a super-step completes, we might be interested in examining or modifying an aggregator's final value. Furthermore, each algorithm defines its own termination condition. For example, an algorithm might terminate ...