Queue pair partitioning in distributed computer system
First Claim
1. A distributed computer system comprising:
- a first subnet including a first group of endnodes and a second subnet including a second group of endnodes, each endnode in the first and second groups of endnodes including;
at least one process which produces and/or consumes message data; and
queue pairs, each queue pair including;
a send work queue having work queue elements that describe message data for sending, and a receive work queue having work queue elements that describe where to place incoming message data;
a communication fabric physically coupled to the first group of endnodes and the second group of endnodes; and
a partitioning mechanism associating a first partition key representing endnodes in a first partition to a first group of queue pairs and a second partition key representing endnodes in a second partition to a second group of queue pairs for enabling communication between endnodes over the communication fabric.
3 Assignments
0 Petitions
Accused Products
Abstract
A distributed computer system has a first subnet including a first group of endnodes and a second subnet including a second group of endnodes. Each endnode in the first and second groups of endnodes includes at least one process which produces and/or consumes message data, and queue pairs. Each queue pair includes a send work queue having work queue elements that describe message data for sending, and a receive work queue having work queue elements that describe where to place incoming message data. A communication fabric is physically coupled to the first group of endnodes and the second group of endnodes. A partitioning mechanism associates a first partition key representing endnodes in a first partition to a first group of queue pairs and a second partition key representing endnodes in a second partition to a second group of queue pairs for enabling communication between endnodes over the communication fabric.
-
Citations
24 Claims
-
1. A distributed computer system comprising:
-
a first subnet including a first group of endnodes and a second subnet including a second group of endnodes, each endnode in the first and second groups of endnodes including;
at least one process which produces and/or consumes message data; and
queue pairs, each queue pair including;
a send work queue having work queue elements that describe message data for sending, and a receive work queue having work queue elements that describe where to place incoming message data;
a communication fabric physically coupled to the first group of endnodes and the second group of endnodes; and
a partitioning mechanism associating a first partition key representing endnodes in a first partition to a first group of queue pairs and a second partition key representing endnodes in a second partition to a second group of queue pairs for enabling communication between endnodes over the communication fabric. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of partitioning endnodes in a distributed computer system including a first subnet having a first group of endnodes, a second subnet having a second group of endnodes, and a communication fabric physically coupled to the first group of endnodes and the second group of endnodes, the method comprising:
-
producing message data at source endnodes;
consuming messages at destination endnodes;
establishing queue pairs at each endnode, each queue pair including;
a send work queue having work queue elements that describe message data for sending, and a receive work queue having work queue elements that describe where to place incoming message data; and
associating a first partition key representing endnodes in a first partition to a first group of queue pairs and associating a second partition key representing endnodes in a second partition to a second group of queue pairs for enabling communication between endnodes over the communication fabric. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
inserting a partition key associated to a send work queue of a source endnode in a frame sent from the send work queue;
storing a partition key at a destination endnode; and
comparing the partition key in the frame to the stored partition key at the destination endnode.
-
-
15. The method of claim 14, further comprising:
accepting the frame and processing the frame normally if the partition key in the frame matches the stored partition key at the destination endnode.
-
16. The method of claim 14, further comprising:
rejecting the frame if the partition key in the frame does not match the stored partition key at the destination endnode.
-
17. The method of claim 13 further comprising:
defining and establishing partitions on each subnet with a partition manager.
-
18. The method of claim 17 further comprising:
defining and establishing partitions on at least one subnet with multiple partition managers.
-
19. The method of claim 13, wherein the at least one endnode includes queue pairs in different partitions.
-
20. The method of claim 13, wherein the at least one endnode includes queue pairs in the same partition.
-
21. The method of claim 13, wherein a queue pair must have a partition key associated to the queue pair before the queue pair is used.
-
22. The method of claim 13, wherein the endnodes include ports and the method further comprises:
establishing a partition key table having at least one partition key entry at each port.
-
23. The method of claim 13 further comprising:
managing partitions on a plurality of subnets via one partition manager which controls a partition manager agent on each of the plurality of subnets.
-
24. The method of claim 13, wherein the endnodes include ports and the method further comprises:
-
establishing a partition key table having at least one partition key entry at each port;
defining and establishing partitions on each subnet with a partition manager; and
controlling the content of-the partition key table with the partition manager.
-
Specification