System and method for dynamic allocation of reduction engines
A switch equipped with a reduction engine capable of being dynamically allocated in a network is provided. During operation, the reduction engine can be dynamically armed based on a multicast frame. As a result, the network can facilitate an efficient and scalable environment for high performance computing.
1. A switch, comprising:
a number of ports; and
a reduction engine coupled to at least one port and to:
be armed for a reduction process based on a received frame, wherein the received frame comprises a multicast address;
determine a number of output ports based on the multicast address; and
send the frame to the determined output ports, thereby allowing additional reduction engines operating on additional switches downstream from the switch to be armed for the reduction process.
2. The switch of claim 1 , wherein the frame uniquely identifies the reduction process.
3. The switch of claim 1 , wherein the reduction engine is further to set a wait count for the reduction process based on a number of endpoints below the switch based on a multicast tree corresponding to the multicast address.
4. The switch of claim 3 , wherein the reduction engine is further to:
identify one or more received reduction frames associated with the reduction process;
determine that a total number of contributions indicated by the received reduction frames is equal to the wait count; and
perform a reduction operation based on the contributions to generate a reduction frame to be forwarded to a parent node.
5. The switch of claim 4 , wherein the generated reduction frame comprises a count of total contributions based on the received reduction frames.
6. The switch of claim 1 , wherein the reduction engine is further to record a parent node from which the frame is received, thereby facilitating subsequent forwarding of a reduction frame toward a root node.
7. The switch of claim 1 , wherein while determining the output ports the reduction engine is to look up a multicast table based on the multicast address.
8. A method, comprising:
arming a reduction engine of a switch for a reduction process based on a received frame, wherein the received frame comprises a multicast address;
determining a number of output ports based on the multicast address; and
sending the frame to the determined output ports, thereby allowing additional reduction engines operating on additional switches downstream from the switch to be armed for the reduction process.
9. The method of claim 8 , wherein the frame uniquely identifies the reduction process.
10. The method of claim 8 , further comprising setting a wait count for the reduction process based on a number of endpoints below the switch based on a multicast tree corresponding to the multicast address.
11. The method of claim 10 , further comprising:
identifying one or more received reduction frames associated with the reduction process;
determining that a total number of contributions indicated by the received reduction frames is equal to the wait count; and
performing a reduction operation based on the contributions to generate a reduction frame to be forwarded to a parent node.
12. The method of claim 11 , wherein the generated reduction frame comprises a count of total contributions based on the received reduction frames.
13. The method of claim 8 , further comprising recording a parent node from which the frame is received, thereby facilitating subsequent forwarding of a reduction frame toward a root node.
14. The method of claim 8 , wherein determining the output ports comprises looking up a multicast table based on the multicast address.
15. A network system, comprising:
a number of interconnected switches, wherein a respective switch comprises:
a number of ports; and
an reduction engine coupled to at least one port and to:
be armed for a reduction process based on a received frame, wherein the received frame comprises a multicast address;
determine a number of output ports based on the multicast address; and
send the frame to the determined output ports, thereby allowing additional reduction engines to be armed for the reduction process, the additional reduction engines being provided in switches of the number of interconnected switches downstream from the respective switch.
16. The network system of claim 15 , wherein the frame uniquely identifies the reduction process.
17. The network system of claim 15 , wherein the reduction engine is further to set a wait count for the reduction process based on a number of endpoints below the switch based on a multicast tree corresponding to the multicast address.
18. The network system of claim 17 , wherein the reduction engine is further to:
identify one or more received reduction frames associated with the reduction process;
determine that a total number of contributions indicated by the received reduction frames is equal to the wait count; and
perform a reduction operation based on the contributions to generate a reduction frame to be forwarded to a parent node.
19. The network system of claim 18 , wherein the generated reduction frame comprises a count of total contributions based on the received reduction frames.
20. The network system of claim 15 , wherein the reduction engine is further to record a parent node from which the frame is received, thereby facilitating subsequent forwarding of a reduction frame toward a root node.
21. The network system of claim 15 , wherein while determining the output ports the reduction engine is to look up a multicast table based on the multicast address.