IP Library Granted Patent US 8,839,267
Granted Patent B2
US 8,839,267 · App. 13/400,199 · Granted Sep 16, 2014

Method and middleware for efficient messaging on clusters of multi-core processors

Inventors: Guillermo Lopez Taboada (Coruna, ES); Juan Tourino Dominguez (Coruna, ES); Ramon Doallo Biempica (Coruna, ES)
Assignee: Universidade da Coruna-Otri
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,839,267
App. No.
13/400,199
Granted
Sep 16, 2014
Kind
B2
Abstract

Disclosed embodiments include a Java messaging method for efficient inter-node and intra-node communications on computer systems with multi-core processors interconnected via high-speed network interconnections. According to one embodiment, the Java messaging method accesses the high-speed networks and memory more directly and reduces message buffering. Additionally, intra-node communications utilize shared memory transfers within the same Java Virtual Machine. The described Java messaging method does not compromise Java portability and is both user and application transparent.

Claims (17)

1. A method for Java messaging implemented in a processing system with one or more processors and with one or more cores per processor, said method for Java messaging comprising transmitting through a high-speed network an object from a sender method to a receiver method using a protocol wherein said sender method is invoked by passing an identifier of said object and an identifier of a transmission endpoint as arguments into said sender method, and wherein drivers for said high-speed network are selected from the group consisting of OFED, InfiniBand Verbs, uDAPL, Myrinet Express, Open-MX, and MPI communications support.

2. The method for Java messaging of claim 1 , wherein said protocol implements lightweight object marshaling with neither serialization nor deserialization of object data that is contiguous in Java memory.

3. The method for Java messaging of claim 2 , wherein said protocol copies said object to a message queue, whereby synchronization overhead between said sender and said receiver methods is avoided.

4. The method for Java messaging of claim 3 , wherein said protocol implements direct access to said object by native high-speed network drivers and shared-memory, whereby the use and overhead of a TCP/IP protocol stack is avoided.

5. The method for Java messaging of claim 4 , wherein said protocol transmits said object via one or more cluster interconnection networks using one or more high-speed network switches.

6. The method for Java messaging of claim 5 , wherein said native high-speed network drivers are selected from the group consisting of OFED, InfiniBand Verbs, uDAPL, Myrinet Express, Open-MX, and MPI communications support.

7. The method for Java messaging of claim 6 , wherein said high-speed network switches are selected from the group consisting of InfiniBand switches, Myrinet switches, Gigabit Ethernet switches, and combinations thereof; and said method for Java messaging comprises transmitting an object from a sender method to a receiver method using a protocol based on a Java Fast Network Communication protocol.

8. A method for Java messaging implemented in a processing system with one or more processors and with one or more cores per processor, said method for Java messaging comprising transmitting through a high-speed network an object from a sender method to a receiver method using a protocol wherein said sender method is invoked by passing an identifier of said object and an identifier of a transmission endpoint as arguments into said sender method wherein drivers for said high-speed network are selected from the group consisting of OFED, InfiniBand Verbs, uDAPL, Myrinet Express, Open-MX, and MPI communications support, and said protocol implements lightweight object marshaling with neither serialization nor deserialization of object data that is contiguous in Java memory, and said protocol is adapted for shared memory.

9. The method for Java messaging of claim 8 , wherein said protocol copies said object to a message queue, whereby synchronization overhead between said sender and said receiver methods is avoided.

10. The method for Java messaging of claim 9 , wherein said protocol transmits messages within a shared memory system using one or more data copies based on a Java Fast Shared-Memory Communication protocol.

11. The method for Java messaging of claim 10 , wherein said data copies are implemented using an intra-process multithreaded transmission within a single standard Java Virtual Machine and each of said sender and said receiver methods is executed in an isolated naming space within said standard Java Virtual Machine.

12. The method for Java messaging of claim 11 , wherein said data copies are implemented using an inter-process shared-memory transmission between two standard Java Virtual Machines.

13. A method for Java messaging implemented in a processing system with one or more processors and with one or more cores per processor, said method for Java messaging comprising transmitting through a high-speed network an object from a sender method to a receiver method using a protocol wherein said sender method is invoked by passing an identifier of said object and an identifier of a transmission endpoint as arguments into said sender method wherein drivers for said high-speed network are selected from the group consisting of OFED, InfiniBand Verbs, uDAPL, Myrinet Express, Open-MX, and MPI communications support, and said protocol implements lightweight object marshaling with neither serialization nor deserialization of object data that is contiguous in Java memory, and said protocol is adapted for hybrid network/share-memory.

14. The method for Java messaging of claim 13 , wherein said protocol copies said object to a message queue, whereby synchronization overhead between said sender and said receiver methods is avoided.

15. The method for Java messaging of claim 14 , wherein said protocol transmits messages using a Java Fast Shared-Memory Communication protocol if said receiver method is invoked on the same computer system as said sender method, and transmits messages using a Java Fast Network Communication protocol if said receiver method is invoked on a different computer system to said sender method.

16. The method for Java messaging of claim 15 , wherein said sender method can transmit messages to any communication endpoint on the same computer system or on a different computer system within said processing system, and said method for Java messaging comprises transmitting an object from a sender method to a receiver method using a protocol based on a Java Fast Hybrid Network/Shared-Memory protocol.

17. An apparatus for Java messaging comprising a processor configured to execute a method for Java messaging, said method comprising transmitting through a high-speed network an object from a sender method to a receiver method using a protocol wherein said sender method is invoked by passing an identifier of said object and an identifier of a transmission endpoint as arguments into said sender method wherein drivers for said high-speed network are selected from the group consisting of OFED, InfiniBand Verbs, uDAPL, Myrinet Express, Open-MX, and MPI communications support, and wherein said protocol 1) implements lightweight object marshaling with neither serialization nor deserialization of object data that is contiguous in Java memory, 2) copies said object to a message queue, whereby synchronization overhead between said sender and said receiver methods is avoided, 3) implements direct access to said object by native high-speed network drivers and shared-memory, whereby the use and overhead of a TCP/IP protocol stack is avoided, and 4) transmits said object via one or more cluster interconnection networks using one or more high-speed network switches.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2012
From: LOPEZ TABOADA, GUILLERMO; TOURINO DOMINGUEZ, JUAN; DOALLO BIEMPICA, RAMON
To: UNIVERSIDADE DA CORUNA - OTRI
Reel/Frame 029100/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2012
From: LOPEZ TABOADA, GUILLERMO; TOURINO DOMINGUEZ, JUAN; DOALLO BIEMPICA, RAMON
To: UNIVERSIDADE DA CORUNA-OTRI
Reel/Frame 027961/0130 →
Continuity (2)
Provisional Application 61444789 · Feb 21, 2011
Related Publication 20120216216A1 · Aug 23, 2012