IP Library Granted Patent US 8,843,894
Granted Patent B2
US 8,843,894 · App. 13/417,878 · Granted Sep 23, 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,843,894
App. No.
13/417,878
Granted
Sep 23, 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 (23)

1. A method for running distributed programs in a hybrid system having heterogeneous platforms, 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.

2. The method of claim 1 , wherein the runtime of the program continues with execution the program with the replaced direct reference.

3. The method of claim 1 , wherein the step of returning includes returning the direct reference to the selected platform-specific implementation and information related to the associated platform.

4. The method of claim 1 , wherein the symbolic reference is looked up in a table containing the affinity measure.

5. The method of claim 4 , wherein the affinity measure in the table is computed and updated dynamically in runtime.

6. The method of claim 4 , wherein overhead associated with running said one or more platform-specific implementations is used in computation of said affinity measure.

7. The method of claim 4 , wherein the affinity measure is computed based on execution time, or resource usage, or combinations thereof.

8. The method of claim 1 , wherein the program's method call is associated with multiple different platform-specific implementations.

9. The method of claim 1 , wherein the program's method call is associated with multiple different platform-specific implementations based on different parameters specified in the program's method call.

10. A method for affinity-based preferential call technique for improving performance of distributed applications in a hybrid system having heterogeneous platforms, 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.

11. The method of claim 10 , 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.

12. The method of claim 11 , wherein said efficiency measures are determined at runtime dynamically, and the table is updated with the most recently determined efficiency measures.

13. The method of claim 10 , wherein the step of intercepting is performed if it is determined that the segment of code is a candidate for the affinity-based preferential call technique.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2012
From: DAWSON, MICHAEL H.; DUBE, PARIJAT; FONG, LIANA L.; GAO, YUQING; GUERIN, XAVIER R.; HACK, MICHEL H. T.; ITO, MEGUMI; JOHNSON, GRAEME; LING, NAI K.; LIU, YANBIN; MENG, XIAOQIAO; NAGARAJA, PRAMOD B.; SEELAM, SEETHARAMI R.; TAN, WEI; ZHANG, LI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 027847/0257 →
Continuity (1)
Related Publication 20130235992A1 · Sep 12, 2013