IP Library Granted Patent US 8,869,119
Granted Patent B2
US 8,869,119 · App. 13/616,417 · Granted Oct 21, 2014

Preferential execution of method calls in hybrid systems

Inventors: Michael H. Dawson (Ottawa, CA); Parijat Dube (Yorktown Heights, NY); Liana L. Fong (Irvington, NY); Yuqing Gao (Mount Kisco, NY); Xavier R. Guerin (White Plains, NY); Michel H. T. Hack (Cortlandt Manor, NY); Megumi Ito (Kanagawa-ken, JP); Graeme Johnson (Ottawa, CA); Nai K. Ling (Tuckahoe, NY); Yanbin Liu (New Haven, CT); Xiaoqiao Meng (Yorktown Heights, NY); Pramod B. Nagaraja (Karnataka, IN); Seetharami R. Seelam (Yorktown Heights, NY); Wei Tan (Elmsford, NY); Li Zhang (Yorktown Heights, 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,869,119
App. No.
13/616,417
Granted
Oct 21, 2014
Kind
B2
Abstract

Affinity-based preferential call technique, in one aspect, may improve performance of distributed applications in a hybrid system having heterogeneous platforms. A segment of code in a program being executed on a processor may be intercepted or trapped in runtime. A platform is selected in the hybrid system for executing said segment of code, the platform determined to run the segment of code with best efficiency among a plurality of platforms in the hybrid system. The segment of code is dynamically executed on the selected platform determined to run the segment of code with best efficiency.

Claims (29)

1. A system for running distributed programs in hybrid system, comprising:

a processor in the hybrid system running an application program; and

an affinity-based preferential call module operable to intercept a program's method call in runtime, the affinity-based preferential call module further operable to look up a symbolic reference associated with the trapped method call for one or more platform-specific implementations, the affinity-based preferential call module further operable to select a platform-specific implementation from said one or more platform-specific implementations based on affinity measure associated with said one or more platform-specific implementations, the affinity measure indicating how efficiently said one or more platform-specific implementations run on respective one or more platforms in the hybrid system, the affinity-based preferential call module further operable to replace the symbolic reference associated with the trapped method call with a direct reference to the selected platform-specific implementation,

wherein the hybrid system comprises at least a general-purpose processor and a special-purpose processor, and said one or more platform-specific implementations comprise at least code programmed to execute on the special-purpose processor.

2. The system of claim 1 , further including a database storing entries specifying one or more platform-specific implementations for method calls and associated efficiency measures indicating how efficiently a respective platform runs a respective platform-specific implementation.

3. The system of claim 2 , wherein said efficiency measures are updated dynamically at runtime.

4. The system of claim 2 , wherein overhead associated with running said one or more platform-specific implementations on respective platforms is used as one of a plurality of criteria in selecting the platform-specific implementation.

5. The system of claim 2 , wherein the database stores multiple platform-specific implementations for the method call.

6. The system of claim 5 , wherein the database stores multiple platform-specific implementations for the method call based on different parameters used in the method call.

7. A non-transitory computer readable storage medium storing a program of instructions executable by a machine to perform a method of running distributed programs in hybrid system having heterogeneous platforms, the method comprising:

trapping a program's method call in runtime of a program executing on a processor;

looking up a symbolic reference associated with the trapped method call for one or more platform-specific implementations;

selecting a platform-specific implementation from said one or more platform-specific implementations based on affinity measure associated with said one or more platform-specific implementations, the affinity measure indicating how efficiently said one or more platform-specific implementations run on respective one or more platforms in said hybrid system;

returning a direct reference to the selected platform-specific implementation; and

replacing the symbolic reference associated with the trapped method call with the returned direct reference to the selected platform-specific implementation,

wherein the hybrid system comprises at least a general-purpose processor and a special-purpose processor, and said one or more platform-specific implementations comprise at least code programmed to execute on the special-purpose processor.

8. The computer readable storage medium of claim 7 , wherein the runtime of the program continues with execution the program with the replaced direct reference.

9. The computer readable storage medium of claim 7 , wherein the step of returning includes returning the direct reference to the selected platform-specific implementation and information related to the associated platform.

10. The computer readable storage medium of claim 7 , wherein the symbolic reference is looked up in a table containing the affinity measure.

11. The computer readable storage medium of claim 10 , wherein the affinity measure in the table is computed and updated dynamically in runtime.

12. The computer readable storage medium of claim 10 , wherein overhead associated with running said one or more platform-specific implementations is used in computation of said affinity measure.

13. A non-transitory computer readable storage medium storing a program of instructions executable by a machine to perform a method of affinity-based preferential call technique for improving performance of distributed applications in a hybrid system having heterogeneous platforms, the method comprising:

intercepting in runtime a segment of code in a program being executed on a processor;

determining a platform in the hybrid system for executing said segment of code, the platform determined to run the segment of code with best efficiency among a plurality of platforms in the hybrid system,

wherein said segment of code is dynamically executed on said platform determined to run the segment of code with best efficiency,

wherein the hybrid system comprises at least a general-purpose processor and a special-purpose processor, and the segment of code has an associated platform-specific implementation programmed to execute on the platform determined to run the segment of code with best efficiency.

14. The computer readable storage medium of claim 13 , wherein the determining includes looking up a table that includes one or more entries specifying one or more platform-specific implementations associated with the segment of code and efficiency measures.

15. The computer readable storage medium of claim 14 , wherein said efficiency measures are determined at runtime dynamically, and the table is updated with the most recently determined efficiency measures.

16. The computer readable storage medium of claim 13 , wherein the intercepting is performed if it is determined that the segment of code is a candidate for the affinity-based preferential call technique.

Continuity (2)
Continuation 13417878 · Mar 12, 2012
Related Publication 20130239128A1 · Sep 12, 2013