IP Library Granted Patent US 9,465,714
Granted Patent B1
US 9,465,714 · App. 14/860,986 · Granted Oct 11, 2016

Adaptive runtime for a multiprocessing API

Inventors: Samuel F. Antao (Somerville, MA); Carlo Bertolli (Dobbs Ferry, NY); Alexandre E. Eichenberger (Chappaqua, NY); John K. O'Brien (South Salem, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F11/3409G06F9/54G06F11/302
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 9,465,714
App. No.
14/860,986
Granted
Oct 11, 2016
Kind
B1
Abstract

A computer-implemented method includes selecting a runtime for executing a program. The runtime includes a first combination of feature implementations, where each feature implementation implements a feature of an application programming interface (API). Execution of the program is monitored, and the execution uses the runtime. Monitor data is generated based on the monitoring. A second combination of feature implementations are selected, by a computer processor, where the selection is based at least in part on the monitor data. The runtime is modified by activating the second combination of feature implementations to replace the first combination of feature implementations.

Claims (32)

1. A system comprising:

a memory having computer readable instructions; and

one or more processors for executing the computer readable instructions, the computer readable instructions comprising:

selecting a runtime for executing a program, the runtime comprising a first combination of feature implementations, each feature implementation implementing a feature of an application programming interface (API);

monitoring execution of the program, the execution using the runtime;

generating monitor data based on the monitoring;

determining, based on the monitor data, a frequency at which a first feature that is implemented by a first feature implementation in the first combination of feature implementations is used;

selecting a second combination of feature implementations, the second combination of feature implementations replacing the first feature implementation with a second feature implementation configured to implement the first feature, the selecting the second combination of feature implementations being based at least in part on the frequency at which the first feature is used; and

modifying the runtime by activating the second combination of feature implementations to replace the first combination of feature implementations.

2. The system of claim 1 , wherein the runtime has a different behavior when comprising the first combination of feature implementations as compared to the second combination of feature implementations.

3. The system of claim 1 , wherein selecting the second combination of feature implementations further comprises receiving compiler data related to the program, wherein the compiler data is generated based on compiling the program, and wherein selecting the second combination of feature implementations is further based at least in part on the compiler data.

4. The system of claim 1 , wherein selecting the second combination of feature implementations further comprises receiving execution data based on user input into an execution environment, and wherein selecting the second combination of feature implementations is further based at least in part on the execution data.

5. The system of claim 1 , wherein the API is at least one of open multiprocessing (OpenMP) and message passing interface (MPI).

6. The system of claim 1 , wherein modifying the runtime by activating the second combination of feature implementations to replace the first combination of feature implementations further comprises:

determining that the first feature implemented by the first feature implementation of the first combination of feature implementations is not in use; and

replacing the first feature implementation with the second feature implementation of the first feature, responsive to determining that the first feature is not in use.

7. The system of claim 1 , wherein modifying the runtime by activating the second combination of feature implementations to replace the first combination of feature implementations modifies at least one of: an overhead of the runtime, implementation of nested parallelism of the runtime, concurrency capability of the runtime, and task management of the runtime.

8. A computer program product for adapting a runtime of a program, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising:

selecting a runtime for executing a program, the runtime comprising a first combination of feature implementations, each feature implementation implementing a feature of an application programming interface (API);

monitoring execution of the program, the execution using the runtime;

generating monitor data based on the monitoring;

determining, based on the monitor data, a frequency at which a first feature that is implemented by a first feature implementation in the first combination of feature implementations is used;

selecting a second combination of feature implementations, the second combination of feature implementations replacing the first feature implementation with a second feature implementation configured to implement the first feature, the selecting the second combination of feature implementations being based at least in part on the frequency at which the first feature is used; and

modifying the runtime by activating the second combination of feature implementations to replace the first combination of feature implementations.

9. The computer program product of claim 8 , wherein the runtime has a different behavior when comprising the first combination of feature implementations as compared to the second combination of feature implementations.

10. The computer program product of claim 8 , wherein selecting the second combination of feature implementations further comprises receiving compiler data related to the program, wherein the compiler data is generated based on compiling the program, and wherein selecting the second combination of feature implementations is further based at least in part on the compiler data.

11. The computer program product of claim 8 , wherein selecting the second combination of feature implementations further comprises receiving execution data based on user input into an execution environment, and wherein selecting the second combination of feature implementations is further based at least in part on the execution data.

12. The computer program product of claim 8 , wherein the API is at least one of open multiprocessing (OpenMP) and message passing interface (MPI).

13. The computer program product of claim 8 , wherein modifying the runtime by activating the second combination of feature implementations to replace the first combination of feature implementations further comprises:

determining that the first feature implemented by the first feature implementation of the first combination of feature implementations is not in use; and

replacing the first feature implementation with the second feature implementation of the first feature, responsive to determining that the first feature is not in use.

14. The computer program product of claim 8 , wherein modifying the runtime by activating the second combination of feature implementations to replace the first combination of feature implementations modifies at least one of: an overhead of the runtime, implementation of nested parallelism of the runtime, concurrency capability of the runtime, and task management of the runtime.

Assignments (2)
CONFIRMATORY LICENSE Recorded Jul 19, 2017
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 043238/0833 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2015
From: ANTAO, SAMUEL F.; BERTOLLI, CARLO; EICHENBERGER, ALEXANDRE E.; O'BRIEN, JOHN K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036623/0024 →