1. A method of maintaining a global clock within a multiprocessor system having a plurality of nodes that are connected in a network via links, wherein the plurality of nodes includes a first node and a second node, the method comprising: mapping a virtual spanning tree onto the network; configuring the nodes and the links such that each node is in a parent-child relationship with one or more other nodes in the virtual spanning tree; generating a global clock in a root node of the virtual spanning tree; communicating from the root node global clock signals based on the generated global clock of the root node down the virtual spanning tree to each of the nodes; and when a child node detects that the link between that child node and a parent node of that child node has failed, generating at that child node its own clock; and propagating from that child node clock signals based on its own generated clock down the virtual spanning tree to descendant nodes of that child node.