Interactive Divacon Computation GraphBelow is a live, interactive view of the PDC reverse function unrolling in Divacon computation/communication graph. This demonstrates the post-adjustment PDC pattern where:
PDC(dlr, clr, id, !other : # ! corr, atom?, id)
From Zhijing George Mou's 1990 Yale Thesis Input Array (2^N values for N<4)The Communication PatternThe remarkable characteristic of this communication pattern, expressed in George's term "lockstep", is that an entire half of the set of all positions communicates with a second entire half of the set, all in one timestep. The whole marching band takes one step in one direction at once. Conveniently you can cut the whole set into halves 3 different orthogonal ways, like into 8 1-arrays, 4 2-arrays, and 2 4-arrays. Talk between halves that are cut up this way, then that way, then the other way, you're done. Is that a miracle? I think it's a miracle. I can't see it at all, then it seems perfectly obvious, then I can't see it again. At all. So go through the steps of the unrolled computation graph, and see if any part isn't perfectly obvious. Then have a cup of tea, and begin to accept it, and soon, very soon, try some more examples, and maybe some exercises, and try to do some for yourself. Post-Adjustment SequenceBy this method, reverse takes log-N steps, each with:
|