Hardware packet pacing using a DMA in a parallel computer
First Claim
Patent Images
1. A method of hardware packet pacing using a direct memory access controller in a multi-node parallel computer, comprising:
- establishing in a first node a token counter on a direct memory access controller initially set to a first predetermined value;
establishing in the first node maximum pacing submessage size, the maximum pacing submessage size being a value less than or equal to the first predetermined value;
establishing in the first node a remaining bytes count, the remaining bytes count initially set to a message length field value in an original remote get packet;
setting in the first node a submessage size to the maximum pacing submessage size or the remaining bytes count, whichever is less;
waiting in the first node for the token counter to be greater than or equal to the submessage size;
injecting a remote get packet of the submessage size to a network of at least one or more other nodes when the token counter is greater than or equal to the submessage size and decrementing the token counter and the remaining bytes count by the submessage size; and
repeating the steps of setting, waiting and injecting until the remaining bytes count is zero.
2 Assignments
0 Petitions
Accused Products
Abstract
Method and system for hardware packet pacing using a direct memory access controller in a parallel computer which, in one aspect, keeps track of a total number of bytes put on the network as a result of a remote get operation, using a hardware token counter.
112 Citations
16 Claims
-
1. A method of hardware packet pacing using a direct memory access controller in a multi-node parallel computer, comprising:
-
establishing in a first node a token counter on a direct memory access controller initially set to a first predetermined value; establishing in the first node maximum pacing submessage size, the maximum pacing submessage size being a value less than or equal to the first predetermined value; establishing in the first node a remaining bytes count, the remaining bytes count initially set to a message length field value in an original remote get packet; setting in the first node a submessage size to the maximum pacing submessage size or the remaining bytes count, whichever is less; waiting in the first node for the token counter to be greater than or equal to the submessage size; injecting a remote get packet of the submessage size to a network of at least one or more other nodes when the token counter is greater than or equal to the submessage size and decrementing the token counter and the remaining bytes count by the submessage size; and repeating the steps of setting, waiting and injecting until the remaining bytes count is zero. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method of hardware packet pacing using a direct memory access controller in a multi-node parallel computer, comprising:
-
detecting in a first node a remote get message descriptor in an injection fifo associated with a direct memory controller; retrieving in the first node put descriptor information from information specified in the remote get message descriptor, the put description information including at least a message size, an injection offset, a reception offset, an injection counter identifier and a reception counter identifier; setting in the first node a pacing submessage size; setting in the first node a token counter to a predetermined value greater than the pacing size; assembling in the first node a new remote get packet using the put description information, the new remote get packet specifying a message size that is at most the pacing size; before sending the new remote get packet, waiting in the first node until the token counter is greater than or equal to the message size specified in the new remote get packet; sending the new remote get packet to at least one or more other nodes; decrementing in the first node the token counter by the message size specified in the new remote get packet; and incrementing in the first node the injection offset and the reception offset by the message size specified in the new remote get packet; and repeating the steps of assembling, waiting, sending, decrementing and incrementing until the message size of the remote get has been processed by all the new remote get packets. - View Dependent Claims (16)
-
Specification