Method and apparatus for accessing thread-privatized global storage objects
First Claim
1. A method comprising:
- receiving a first source code having a number of global storage objects, wherein the number of global storage objects are to be accessed by a number of threads during execution; and
translating the first source code into a second source code, wherein the translating includes adding initialization logic for each of the number of global storage objects , the initialization logic to include the following;
generating private copies of each of the number of global storage objects during execution of the second source code; and
generating at least one cache object during the execution of the second source code, wherein the private copies of each of the number of global storage objects are accessed through the at least one cache object during execution of the second source code.
1 Assignment
0 Petitions
Accused Products
Abstract
In an embodiment, a method includes receiving a first source code having a number of global storage objects, wherein the number of global storage objects are to be accessed by a number of threads during execution. The method also includes translating the first source code into a second source code. The translating includes adding initialization logic for each of the number of global storage objects. The initialization logic includes generating private copies of each of the number of global storage objects during execution of the second source code. The initialization logic also includes generating at least one cache object during the execution of the second source code, wherein the private copies of each of the number of global storage objects are accessed through the at least one cache object during execution of the second source code.
-
Citations
30 Claims
-
1. A method comprising:
-
receiving a first source code having a number of global storage objects, wherein the number of global storage objects are to be accessed by a number of threads during execution; and
translating the first source code into a second source code, wherein the translating includes adding initialization logic for each of the number of global storage objects , the initialization logic to include the following;
generating private copies of each of the number of global storage objects during execution of the second source code; and
generating at least one cache object during the execution of the second source code, wherein the private copies of each of the number of global storage objects are accessed through the at least one cache object during execution of the second source code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method comprising:
-
receiving a number of program units having a number of global storage objects, wherein the number of global storage objects are to be accessed by a number of threads during execution in a multi-processing shared memory environment; and
translating the number of program units into a number of translated program units, wherein the translating includes adding initialization logic for each of the number of global storage objects , the initialization logic to include the following;
generating thread private copies of each of the number of global storage objects for each of the number of threads during execution of a routine from a run time library, the thread private copies of each of the number of global storage objects generated by a routine in a run time library; and
generating at least one cache object during execution of the routine from the run time library, wherein a thread private copy of each of the number of global storage objects are accessed through the at least one cache object during execution of the second source code, independent of the run time library, after the thread private copy has been generated. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A system comprising:
-
a translation unit to receive a number of program units having a number of global storage objects, wherein the number of global storage objects are to be accessed by a number of threads during execution in a multi-processing shared memory environment, the translation unit to translate the number of program units into a number of translated program units, wherein the number of translated program units are to generate at least one cache object and to generate thread private copies of each of the number of global storage objects for each of the number of threads during execution, the thread private copies of each of the number of global storage objects generated by a routine in a run time library, wherein the thread private copies of the number of global storage objects are subsequently accessed through the at least one cache object, independent of routines in the run time library; and
a compiler unit coupled to the translation unit, the compiler unit to receive the number of translated program units and to generate object code based on the number of translated program units. - View Dependent Claims (18, 19)
-
-
20. A machine-readable medium that provides instructions, which when executed by a machine, cause said machine to perform operations comprising:
-
receiving a first source code having a number of global storage objects, wherein the number of global storage objects are to be accessed by a number of threads during execution; and
translating the first source code into a second source code, wherein the translating includes adding initialization logic for each of the number of global storage objects , the initialization logic to include the following;
generating private copies of each of the number of global storage objects during execution of the second source code; and
generating at least one cache object during the execution of the second source code, wherein the private copies of each of the number of global storage objects are accessed through the at least one cache object during execution of the second source code. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
-
27. A machine-readable medium that provides instructions, which when executed by a machine, cause said machine to perform operations comprising:
-
receiving a number of program units having a number of global storage objects, wherein the number of global storage objects are to be accessed by a number of threads during execution in a multi-processing shared memory environment; and
translating the number of program units into a number of translated program units, wherein the translating includes adding initialization logic for each of the number of global storage objects, the initialization logic to include the following;
generating thread private copies of each of the number of global storage objects for each of the number of threads during execution of a routine from a run time library, the thread private copies of each of the number of global storage objects generated by a routine in a run time library; and
generating at least one cache object during execution of the routine from the run time library, wherein a thread private copy of each of the number of global storage objects are accessed through the at least one cache object during execution of the second source code, independent of the run time library, after the thread private copy has been generated. - View Dependent Claims (28, 29, 30)
-
Specification