Delta caching dynamically maintains the gather accumulator result across iterations to avoid re-executing gather on unchanged neighbors.
The execution engine caches the accumulator au from the previous gather phase for each vertex u. During the scatter phase on edge (u,v), the user-defined scatter function can return an additive correction term Δa. When the accumulator domain forms an abelian group with commutative and associative addition (+) and an inverse (−), the change is computed as:
Δa=g(Dunew,D(u,v)new,Dvnew)−g(Du,D(u,v),Dv)
where g is the gather function.
The delta Δa is atomically added to the neighbor's cached accumulator using av←sum(av,Δa). When vertex v subsequently executes, it reuses av and skips the gather phase entirely. If scatter returns no delta (extNULL), av is cleared, forcing a full gather on v's next execution.