IP Library › Granted Patent US 7,031,989
Granted Patent B2
US 7,031,989 · App. 09/793,644 · Granted Apr 18, 2006

Dynamic seamless reconfiguration of executing parallel software

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 7,031,989
App. No.
09/793,644
Granted
Apr 18, 2006
Kind
B2
Abstract

A method is described for dynamic stitching of a new module of executable code in a parallel processing environment, where access to a data object is shared by the new module and another module previously loaded. A new data object is created for shared access by the new module and by the other module; a data freshness indicator is updated in accordance therewith. A pointer value for the data pointer associated with the other module is modified, thereby terminating reference to an old data object previously accessed and substituting reference to the new data object. A second data freshness indicator is updated in accordance with access by the other module to the new data object. The old data object is deleted when a comparison between freshness indicators shows that access to the old data object is no longer required.

Claims (51)

1. A method for performing dynamic stitching of a new module of executable code in a parallel processing environment, where said new module and another module previously loaded share access to a data object, said access being performed using a first data pointer associated with the new module and having a first pointer value and a second data pointer associated with the other module and having a second pointer value, the method comprising the steps of:

loading said new module, so that said new module and the other module execute in parallel;

creating a new data object for shared access by said new module during execution thereof and by the other module during execution thereof, in place of an old data object, the new data object being created when said new module is loaded;

updating a first data freshness indicator in accordance with creation of the new data object;

associating a value of the first freshness indicator with the old data object;

establishing the first pointer value to permit access to the new data object by said new module;

modifying the second pointer value, thereby terminating reference to the old data object and substituting reference to the new data object;

updating a second data freshness indicator in accordance with access by the other module to shared data after creation of the new data object; and

deleting the old data object when a comparison of said second data freshness indicator with the value associated with the old data object indicates that access to the old data object is not required.

2. The method of claim 1 , wherein the first pointer value and the second pointer value are atomic data, so that said modifying of the second pointer value is an atomic operation.

3. The method of claim 1 , wherein said updating of the first data freshness indicator comprises incrementing the first data freshness indicator by 1.

4. The method of claim 1 , further comprising the steps of:

establishing a list of data objects subject to deletion; and

adding the old data object to said list after creating of the new data object.

5. The method of claim 1 , wherein said step of updating the second data freshness indicator comprises setting the second data freshness indicator equal to the first data freshness indicator.

6. The method of claim 1 , wherein said new module and a plurality of other modules previously loaded share access to the new data object, the modules comprise a plurality of contexts, and a separate second data freshness indicator, characterized as a context freshness indicator, is associated with each context.

7. The method of claim 6 , wherein said deleting is performed after the context freshness indicators have been updated so that all the context freshness indicators are not less than the value associated with the old data object.

8. A computer-readable storage medium having stored therein instructions for performing a method for performing dynamic stitching of a new module of executable code in a parallel processing environment, where said new module and another module previously loaded share access to a data object, said access being performed using a first data pointer associated with the new module and having a first pointer value and a second data pointer associated with the other module and having a second pointer value, the method comprising the steps of:

loading said new module, so that said new module and the other module execute in parallel;

creating a new data object for shared access by said new module during execution thereof and by the other module during execution thereof, in place of an old data object, the new data object being created when said new module is loaded;

updating a first data freshness indicator in accordance with creation of the new data object;

associating a value of the first freshness indicator with the old data object;

establishing the first pointer value to permit access to the new data object by said new module;

modifying the second pointer value, thereby terminating reference to the old data object and substituting reference to the new data object;

updating a second data freshness indicator in accordance with access by the other module to shared data after creation of the new data object; and

deleting the old data object when a comparison of said second data freshness indicator with the value associated with the old data object indicates that access to the old data object is not required.

9. The computer-readable storage medium of claim 8 , wherein the first pointer value and the second pointer value are atomic data, so that said modifying of the second pointer value is an atomic operation.

10. The computer-readable storage medium of claim 8 , wherein said updating of the first data freshness indicator comprises incrementing the first data freshness indicator by 1.

11. The computer-readable storage medium of claim 8 , wherein the method further comprises the steps of:

establishing a list of data objects subject to deletion; and

adding the old data object to said list after creation of the new data object.

12. The computer-readable storage medium of claim 8 , wherein said step of updating the second data freshness indicator comprises setting the second data freshness indicator equal to the first data freshness indicator.

13. The computer-readable storage medium of claim 8 , wherein said new module and a plurality of other modules previously loaded share access to the new data object, the modules comprise a plurality of contexts, and a separate second data freshness indicator, characterized as a context freshness indicator, is associated with each context.

14. The computer-readable storage medium of claim 13 , wherein said deleting is performed after the context freshness indicators have been updated so that all the context freshness indicators are not less than the value associated with the old data object.

15. A computer program product embodying instructions for performing a method for performing dynamic stitching of a new module of executable code in a parallel processing environment, where said new module and another module previously loaded share access to a data object, said access being performed using a first data pointer associated with the new module and having a first pointer value and a second data pointer associated with the other module and having a second pointer value, the method comprising the steps of:

loading said new module, so that said new module and the other module execute in parallel;

creating a new data object for shared access by said new module during execution thereof and by the other module during execution thereof, in place of an old data object, the new data object being created when said new module is loaded;

updating a first data freshness indicator in accordance with creation of the new data object;

associating a value of the first freshness indicator with the old data object;

establishing the first pointer value to permit access to the new data object by said new module;

modifying the second pointer value, thereby terminating reference to the old data object and substituting reference to the new data object;

updating a second data freshness indicator in accordance with access by the other module to shared data after creation of the new data object; and

deleting the old data object when a comparison of said second data freshness indicator with the value associated with the old data object indicates that access to the old data object is not required.

16. The computer program product of claim 15 , wherein the first pointer value and the second pointer value are atomic data, so that said modifying of the second pointer value is an atomic operation.

17. The computer program product of claim 15 , wherein said updating of the first data freshness indicator comprises incrementing the first data freshness indicator by 1.

18. The computer program product of claim 15 , wherein the method further comprises the steps of:

establishing a list of data objects subject to deletion; and

adding the old data object to said list after creation of the new data object.

19. The computer program product of claim 15 , wherein said step of updating the second data freshness indicator comprises setting the second data freshness indicator equal to the first data freshness indicator.

20. The computer program product of claim 15 , wherein said new module and a plurality of other modules previously loaded share access to the new data object, the modules comprise a plurality of contexts, and a separate second data freshness indicator, characterized as a context freshness indicator, is associated with each context.

21. The computer program product of claim 20 , wherein said deleting is performed after the context freshness indicators have been updated so that all the context freshness indicators are not less than the value associated with the old data object.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2001
From: ELMENDORF, PETER C.; BALLAL, UNMESH A.; BEATTY, III, HARRY J.; YAN, QI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 011606/0195 →
Continuity (1)
Related Publication 20020120601A1 · Aug 29, 2002