Its basic property is
that it does not have supersteps. Instead the computation is
coordinated by synchronizers which can also spawn sub-synchronizers.
By this way, there's no more a global barrier but the algorithm can
specify different barriers to which subsets of the vertices can
synchronize. The idea is to allow a more fine-grained synchronization
mechanism, to avoid many vertices to idle waiting for unrelated
vertices to finish their computation.
Unlike Signal/Collect
and Pregel which can only control individual vertices, global
execution can be controlled thanks to synchronizers in HipG.
But it is hard to
comprehend the usage of these sub-synchronizers mechanism. Who will
manage which vertices?
It processes vertices
not with vertex id order, instead they start from a pivot vertex and
compute neighbors recursively until all are processed.
It can create the graph
on-the-fly. This is especially important for model checking, search
trees and so on. I think the biggest strength of HipG is this
property.
No comments:
Post a Comment