Orchestrating the execution of super-steps

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 ...

Get Hands-On Software Engineering with Golang now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.