IP Library Granted Patent US 8,370,855
Granted Patent B2
US 8,370,855 · App. 12/342,616 · Granted Feb 5, 2013

Management of process-to-process intra-cluster communication requests

Inventors: Ravi K. Arimilli (Austin, TX); Piyush Chaudhary (Highland, NY)
Assignee: International Business Machines Corporation
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,370,855
App. No.
12/342,616
Granted
Feb 5, 2013
Kind
B2
Abstract

A mechanism is provided for managing a process-to-process intra-cluster communication request. A call from a first application is received in a first operating system in a first data processing system. The first operating system passes the call from the first operating system to a first host fabric interface controller in the first data processing system without processing the call. The first host fabric interface controller processes the call without intervention by the first operating system to determine a second data processing system in the plurality of data processing systems with which the call is associated. The first host fabric interface controller initiates an intra-cluster connection to a second host fabric interface controller in the second data processing system. The first host fabric interface controller then transfers the call to the second host fabric interface controller in the second data processing system via the intra-cluster connection.

Claims (35)

1. A method, in a plurality of data processing systems, for managing a process-to-process intra-cluster communication request, the method comprising:

receiving, from a first application, a call in a first operating system in a first data processing system of the plurality of data processing systems;

passing, by the first operating system, the call from the first operating system to a first host fabric interface controller in the first data processing system without processing the call;

processing, by the first host fabric interface controller, the call to determine a second data processing system in the plurality of data processing systems with which the call is associated, wherein the call is processed by the first host fabric interface controller without intervention by the first operating system, wherein the determining includes using state information stored by the first host fabric interface controller to identify whether the second data processing system is connected to the first host fabric interface controller through a direct attached intra-cluster or a network attached inter-cluster;

initiating, by the first host fabric interface controller, the identified intra-cluster connection or inter-cluster connection to a second host fabric interface controller in the second data processing system via a set of host fabric interfaces, a set of integrated switch/routers, and a plurality of intra-cluster buses;

transferring, by the first host fabric interface controller, the call to the second host fabric interface controller in the second data processing system via the intra-cluster connection wherein the call is a request to communicate with a second application coupled to the second data processing system and wherein a second operating system in the second data processing system allocates a shared buffer in the second data processing system in response to the request without any involvement by the second application to allocate the shared buffer and wherein the first application and the second application are same types of messaging applications; and

transferring, by the first host fabric interface controller, data associated with the call from a network communications buffer in the first data processing system to the shared buffer in the second data processing system.

2. The method of claim 1 , further comprising:

transferring, by the first host fabric interface controller, data associated with the call from an network communications buffer in the first data processing system to a input/output buffer in a second operating system in the second data processing system.

3. The method of claim 2 , further comprising:

processing, by the second operating system, the call such that the data in the input/output buffer is sent to an input/output device coupled to the second operating system.

4. An apparatus, comprising:

a processor; and

a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to:

receive, from a first application, a call in a first operating system in a first data processing system of a plurality of data processing systems;

pass, by the first operating system, the call from the first operating system to a first host fabric interface controller in the first data processing system without processing the call;

process, by the first host fabric interface controller, the call to determine a second data processing system in the plurality of data processing systems with which the call is associated, wherein the call is processed by the first host fabric interface controller without intervention by the first operating system, wherein the determining includes using state information stored by the first host fabric interface controller to identify whether the second data processing system is connected to the first host fabric interface controller through a direct attached intra-cluster or a network attached inter-cluster;

initiate, by the first host fabric interface controller, the identified intra-cluster connection or inter-cluster connection to a second host fabric interface controller in the second data processing system via a set of host fabric interfaces, a set of integrated switch/routers, and a plurality of intra-cluster buses; and

transfer, by the first host fabric interface controller, the call to the second host fabric interface controller in the second data processing system via the intra-cluster connection, wherein the call is a request to communicate with a second application coupled to the second data processing system and wherein a second operating system in the second data processing system allocates a shared buffer in the second data processing system in response to the request without any involvement by the second application to allocate the shared buffer and wherein the first application and the second application are same types of messaging applications; and

transfer, by the first host fabric interface controller, data associated with the call from a network communications buffer in the first data processing system to the shared buffer in the second data processing system.

5. The apparatus of claim 4 , wherein the instructions further cause the processor to:

transfer, by the first host fabric interface controller, data associated with the call from an network communications buffer in the first data processing system to a input/output buffer in a second operating system in the second data processing system.

6. The apparatus of claim 5 , wherein the instructions further cause the processor to:

process, by the second operating system, the call such that the data in the input/output buffer is sent to an input/output device coupled to the second operating system.

7. A computer program product comprising a non-transitory computer readable medium having a computer readable program recorded thereon, wherein the computer readable program, when executed on a computing device, causes the computing device to:

receive, from a first application, a call in a first operating system in a first data processing system of a plurality of data processing systems;

pass, by the first operating system, the call from the first operating system to a first host fabric interface controller in the first data processing system without processing the call;

process, by the first host fabric interface controller, the call to determine a second data processing system in the plurality of data processing systems with which the call is associated, wherein the call is processed by the first host fabric interface controller without intervention by the first operating system, wherein the determining includes using state information stored by the first host fabric interface controller to identify whether the second data processing system is connected to the first host fabric interface controller through a direct attached intra-cluster or a network attached inter-cluster;

initiate, by the first host fabric interface controller, the identified intra-cluster connection or inter-cluster connection to a second host fabric interface controller in the second data processing system via a set of host fabric interfaces, a set of integrated switch/routers, and a plurality of intra-cluster buses; and

transfer, by the first host fabric interface controller, the call to the second host fabric interface controller in the second data processing system via the intra-cluster connection, wherein the call is a request to communicate with a second application coupled to the second data processing system and wherein a second operating system in the second data processing system allocates a shared buffer in the second data processing system in response to the request without any involvement by the second application to allocate the shared buffer and wherein the first application and the second application are same types of messaging applications; and

transfer, by the first host fabric interface controller, data associated with the call from a network communications buffer in the first data processing system to the shared buffer in the second data processing system.

8. The computer program product of claim 7 , wherein the computer readable program further causes the computing device to:

transfer, by the first host fabric interface controller, data associated with the call from an network communications buffer in the first data processing system to a input/output buffer in a second operating system in the second data processing system.

9. The computer program product of claim 8 , wherein the computer readable program further causes the computing device to:

process, by the second operating system, the call such that the data in the input/output buffer is sent to an input/output device coupled to the second operating system.

Assignments (2)
CONFIRMATORY LICENSE Recorded Jan 14, 2010
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: DARPA
Reel/Frame 023781/0964 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2008
From: ARIMILLI, RAVI K.; CHAUDHARY, PIYUSH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 022040/0732 →
Continuity (1)
Related Publication 20100162271A1 · Jun 24, 2010