Patent ID: 8812610

Claim:
An apparatus for optimized data communications in a parallel computer, the parallel computer comprising a plurality of compute nodes, each compute node comprising a network adapter, the network adapters coupling the compute nodes in a multi-dimension point-to-point network for data communications, each network adapter supporting communications in opposite directions of each dimension, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of: receiving, by a network adapter of a receiving compute node, a data communications packet from a source direction of a source dimension, the packet specifying a compute node as a destination of the packet and specifying a plurality of deposit hints, each separate deposit hint associated uniquely with a direction of a dimension of the point-to-point network and each deposit hint indicating that the packet is to be deposited at each compute node in the associated direction on a path to the destination compute node; if a deposit hint indicates that the packet is to be deposited at compute nodes in the opposite direction of the source direction in the source dimension; delivering, by the network adapter, the packet to an application executing on the receiving compute node; forwarding the packet to a next compute node in the opposite direction of the source dimension only if the packet does not specify the receiving compute node as the destination of the packet; and forwarding the packet to a next compute node in a direction of a subsequent dimension only if the deposit hints indicate that the packet is to be deposited at compute nodes in the direction of the subsequent dimension, wherein each deposit hint comprises a binary bit having a value of one in a bit pattern, where all other bits of the bit pattern have a value of zero; wherein forwarding the packet to a next compute node in a direction of a subsequent dimension further comprises identifying the direction of the subsequent dimension by identifying a next bit in the bit pattern to have a value of one and determining the direction and dimension represented by the bit.