1. A method for performing phase based scheduling in a network having two or more node processing units each node processing unit having at least one node, with each of the at least one node having a single output buffer, the method comprising the steps of: assigning, prior to performing a compute operation on said two or more node processing units, one or more phase values to each of said nodes, wherein said phase values define a first order such that if said nodes are computed in the first order that data dependency requirements are satisfied within the two or more node processing units and wherein two or more nodes can have an identical phase value; and synchronizing the two or more node processing units, having the steps of: (a) selecting a phase epoch in each of said node processing units wherein a phase epoch is a period in which all nodes having a particular phase value are computed; (b) selecting an uncomputed node in said epoch; (c) performing the compute operation on said selected node if said selected node is enabled; (d) outputting a result of said compute operation; (e) repeating steps (b) through (d) for each uncomputed node in said epoch; and (f) repeating steps (a) through (e) for phase epoch.