A method of communicating packets in a multiprocessor computer system having a large plurality of processing nodes interconnected by a defined interconnection topology, in which a communication from a source processing node to a target processing node may pass through one or more intermediate nodes en route to the target processing node, the method comprising:
- for each link in the interconnection topology associating a set of virtual channels, each virtual channel having an associated virtual channel identifier;
- for each communication between a source processing node and a target processing node, assigning an virtual channel to convey the communication;
- at a processing node providing a set of buffers to associate with virtual channels, a first subset of buffers being dedicated for fixed correspondence to virtual channel identifiers, and a second subset of buffers being dedicated for dynamic allocation and assignment to virtual channels;
- in response to a communication request with an associated virtual channel, providing one of the fixed buffers or dynamically allocated buffers to store packet data for the communication.