Software implemented method for thread-privatizing user-specified global storage objects in parallel computer programs via program transformation
First Claim
1. A method for translating, in a computer storage medium, a parallel computer program into a second parallel computer program according to a privatization specification, said parallel computer program comprising one or more parallel regions and one or more global storage objects to be privatized according to said privatization specification, said second parallel computer program comprising said parallel regions and having the ability, when executed, to access privatized copies of said global storage objects according to said privatization specification, said privatization specification indicating the said global storage objects to be privatized and the said parallel regions of said parallel computer program in which the privatization of said global storage objects is to occur, each of said global storage objects being stored in a computer storage medium and having the ability to be accessed in a shared manner by multiple threads of execution, each of said privatized global storage objects being stored in a computer storage medium and having the ability to be accessed in a private manner by each of said threads as opposed to each processor, said method comprising the steps of:
- a. providing, in said second parallel computer program, for a particular said global storage object, a means for addressing privatized copies of said particular global storage object;
b. addressing, in said second parallel computer program, said privatized copies of said particular global storage object, rather than said particular global storage object, by using said addressing means;
c. providing a means for instantiating, when said second parallel computer program is executed, said privatized copies of said particular global storage object according to said privatization specification, said privatized copies being addressable by using said addressing means; and
d. repeating steps (a), (b), and (c) for each of said global storage objects to be privatized.
2 Assignments
0 Petitions
Accused Products
Abstract
A software-implemented method for dynamically and statically privatizing global storage objects in parallel computer programs written in various programming languages. Privatization is accomplished via transformation of these parallel computer programs under the control of a general purpose computer. The privatization method is system-independent and is portable across various computer architectures and platforms since privatization is accomplished via program transformation; thus, the method does not depend on the features of a particular hardware architecture or configuration, operating system, compiler, linker, or thread environment. The inputs to the method are a parallel computer program, comprising parallel regions of execution and global storage objects, and a privatization specification describing the global storage objects to be privatized and the particular parallel regions, and manner, in which each of these objects is to be privatized. The privatization method itself translates the input parallel computer program into a second parallel computer program, according to the privatization specification, such that the second parallel computer program, when executed, accesses the specified global storage objects in a privatized manner, without requiring any explicit programmer modifications to the input parallel computer program.
-
Citations
12 Claims
-
1. A method for translating, in a computer storage medium, a parallel computer program into a second parallel computer program according to a privatization specification, said parallel computer program comprising one or more parallel regions and one or more global storage objects to be privatized according to said privatization specification, said second parallel computer program comprising said parallel regions and having the ability, when executed, to access privatized copies of said global storage objects according to said privatization specification, said privatization specification indicating the said global storage objects to be privatized and the said parallel regions of said parallel computer program in which the privatization of said global storage objects is to occur, each of said global storage objects being stored in a computer storage medium and having the ability to be accessed in a shared manner by multiple threads of execution, each of said privatized global storage objects being stored in a computer storage medium and having the ability to be accessed in a private manner by each of said threads as opposed to each processor, said method comprising the steps of:
-
a. providing, in said second parallel computer program, for a particular said global storage object, a means for addressing privatized copies of said particular global storage object; b. addressing, in said second parallel computer program, said privatized copies of said particular global storage object, rather than said particular global storage object, by using said addressing means; c. providing a means for instantiating, when said second parallel computer program is executed, said privatized copies of said particular global storage object according to said privatization specification, said privatized copies being addressable by using said addressing means; and d. repeating steps (a), (b), and (c) for each of said global storage objects to be privatized. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
Specification