IP Library Granted Patent US 8,850,456
Granted Patent B2
US 8,850,456 · App. 13/453,486 · Granted Sep 30, 2014

Extended dynamic optimization of connection establishment and message progress processing in a multi-fabric message passing interface implementation

Inventors: Vladimir D. Truschin (Sarov, RU); Alexander V. Supalov (Erftstadt, DE); Alexey V. Ryzhykh (Sarov, RU)
Assignee: Intel Corporation
G06F9/546
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,850,456
App. No.
13/453,486
Granted
Sep 30, 2014
Kind
B2
Abstract

In one embodiment, the present invention includes a system that can optimize message passing by, at least in part, automatically determining a minimum number of fabrics and virtual channels to be activated to handle pending connection requests and data transfer requests, and preventing processing of new connection requests and data transfer requests outside of a predetermined communication pattern. Other embodiments are described and claimed.

Claims (23)

1. A system comprising:

a first node including at least one multi-core processor having a plurality of cores, wherein each core can execute a process; and

a memory coupled to the at least one multi-core processor, wherein the memory includes instructions that enable the system to automatically determine a minimum number of fabrics and virtual channels to be activated to handle pending connection requests and data transfer requests, to prevent processing of new connection requests and data transfer requests outside of a predetermined communication pattern, and to update a count of expected connections when a first spin count to control activity of a progress engine reaches a predetermined value, to thereafter set the first spin count to an initial value, update a count of expected reads when a second spin count to control activity of the progress engine reaches the predetermined value, and thereafter set the second spin count to the initial value, and to cause the first spin count and the second spin count to be set to a maximum value to reduce querying of the first and second fabrics and associated virtual channels.

2. The system of claim 1 , wherein the first node is coupled to a second node by a first fabric and coupled to a third node by a second fabric, wherein the first and second fabrics are heterogeneous.

3. The system of claim 1 , further comprising instructions to cause a progress engine to query a plurality of fabrics and virtual channels of the new connection requests and the data transfer requests based at least in part on at least one of the count of expected connections and the count of expected reads.

4. A method comprising:

automatically determining a minimum number of fabrics and virtual channels of a multi-node computing system including a first node coupled to a second node via a first fabric, and coupled to a third node via a second fabric heterogeneous to the first fabric, each of the first, second and third nodes including a multi-core processor, the minimum number of fabrics and virtual channels to be activated to handle pending connection requests and data transfer requests;

preventing processing of new connection requests and data transfer requests outside of a predetermined communication pattern;

updating a count of expected connections when a first spin count associated with a progress engine reaches a first predetermined value, and thereafter setting the first spin count to a first initial value;

updating a count of expected reads when a second spin count associated with the progress engine reaches a second predetermined value, and thereafter setting the second spin count to a second initial value; and

causing the first spin count and the second spin count to be set to a maximum value to reduce querying of the first and second fabrics and associated virtual channels.

5. The method of claim 4 , further comprising causing the progress engine to query a plurality of fabrics and virtual channels for the new connection requests and the data transfer requests based at least in part on at least one of the count of expected connections and the count of expected reads.

6. The method of claim 5 , further comprising enforcing periodic querying of the plurality of fabrics and virtual channels for possible outstanding connection and data transfer requests.

7. The method of claim 6 , further comprising enforcing the periodic querying via the first and second spin counts.

8. The method of claim 4 , further comprising temporarily setting the first spin count and the second spin count each to a predetermined maximum level and thereafter performing a collective operation.

9. An article comprising a non-transitory machine-accessible storage medium including instructions that when executed cause a system to:

automatically determine a minimum number of fabrics and virtual channels of a multi-node computing system including a first node coupled to a second node via a first fabric, and coupled to a third node via a second fabric heterogeneous to the first fabric, each of the first, second and third nodes including a multi-core processor, the minimum number of fabrics and virtual channels to be activated to handle pending connection requests and data transfer requests, and prevent processing of new connection requests and data transfer requests outside of a predetermined communication pattern;

update a count of expected connections when a first spin count associated with a progress engine reaches a first predetermined value, and thereafter set the first spin count to an initial value;

update a count of expected reads when a second spin count associated with the progress engine reaches a second predetermined value, and thereafter set the second spin count to the initial value; and

cause the first spin count and the second spin count to be set to a maximum value to reduce querying of the first and second fabrics and associated virtual channels.

10. The article of claim 9 , further comprising instructions that when executed enable the system to cause the progress engine to query a plurality of fabrics and virtual channels for the new connection requests and the data transfer requests based at least in part on at least one of the count of expected connections and the count of expected reads.

11. The article of claim 10 , further comprising instructions that when executed enable the system to enforce periodic querying of the plurality of fabrics and virtual channels for possible outstanding connection and data transfer requests.

12. The article of claim 9 , further comprising instructions that when executed enable the system to temporarily set the first spin count and the second spin count each to a predetermined maximum level and thereafter perform a collective operation and set the first spin count and the second spin count each to an original value.

Continuity (2)
Continuation 12080688 · Apr 4, 2008
Related Publication 20120210324A1 · Aug 16, 2012