Multi-computer distributed processing with replicated local memory exclusive read and write and network value update propagation
First Claim
1. A method of running simultaneously on a plurality of computers an application program written to operate on only a single computer but modified by a modification routine to run simultaneously on the plurality of computers, said computers being interconnected by a communications network, said method comprising the steps of:
- defining a local independent memory structure in the local independent memory of each one of the plurality of computers, the plurality of computers configured to provide execution of different portions of the application program that is written for execution on and that references only a single computer having a single processing unit or symmetric multiple processing units and the single independent local memory with a local memory capacity that is not shared with any other computer of said plurality of computers;
replacing the application program with a modified application program on each of said computers before execution of different portions of said application program on different ones of said plurality of computers so that the processing unit or units of each of said plurality of computers only reads from and writes to the local independent memory structure in its own local independent memory;
executing the different portions of said modified application program on different ones of said plurality of computers and for each said different portion creating and storing an initial contents of each of said substantially identically named objects each in the corresponding local independent memory of each of the plurality of computers;
during execution of said different portions;
(a) maintaining and storing a current contents of each said identically named objects in each local independent memory location of each of the plurality of computers;
(b) satisfying all reading of contents by the processor or processors of said computer carrying out the execution which generates the demand to read memory using a current contents of a memory location stored in its own local independent memory; and
(c) satisfying all writing of contents by the processor or processors of said of said computer carrying out the execution which generates the demand to write to memory using a current contents of a memory location stored in its own local independent memory; and
propagating updates of the contents of said substantially identically named objects from all of said computers that write a contents to their own local independent memory to the corresponding local independent memory location of each of the other computers over said communications network and storing the updated contents as the current contents in each said local independent memory.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention discloses a modified computer architecture (50, 71, 72) which enables an applications program (50) to be run simultaneously on a plurality of computers (M1, . . . Mn). Shared memory at each computer is updated with amendments and/or overwrites so that all memory read requests are satisfied locally. During initial program loading (75), or similar, instructions which result in memory being re-written or manipulated are identified (92). Additional instructions are inserted (103) to cause the equivalent memory locations at all computers to be updated. In addition, the initialization of JAVA language classes and objects is disclosed (162, 163) so all memory locations for all computers are initialized in the same manner. The finalization of JAVA language classes and objects is also disclosed (162, 163) so finalization only occurs when the last class or object present on all machines is no longer required. During initial program loading (75), or similar, instructions which result in the application program (50) acquiring (or releasing) a lock on a particular asset (50A, 50X-50Y) (synchronization) are identified. Additional instructions are inserted (162, 163) to result in a modified synchronization routine with which all computers are updated.
-
Citations
91 Claims
-
1. A method of running simultaneously on a plurality of computers an application program written to operate on only a single computer but modified by a modification routine to run simultaneously on the plurality of computers, said computers being interconnected by a communications network, said method comprising the steps of:
-
defining a local independent memory structure in the local independent memory of each one of the plurality of computers, the plurality of computers configured to provide execution of different portions of the application program that is written for execution on and that references only a single computer having a single processing unit or symmetric multiple processing units and the single independent local memory with a local memory capacity that is not shared with any other computer of said plurality of computers; replacing the application program with a modified application program on each of said computers before execution of different portions of said application program on different ones of said plurality of computers so that the processing unit or units of each of said plurality of computers only reads from and writes to the local independent memory structure in its own local independent memory; executing the different portions of said modified application program on different ones of said plurality of computers and for each said different portion creating and storing an initial contents of each of said substantially identically named objects each in the corresponding local independent memory of each of the plurality of computers; during execution of said different portions;
(a) maintaining and storing a current contents of each said identically named objects in each local independent memory location of each of the plurality of computers;
(b) satisfying all reading of contents by the processor or processors of said computer carrying out the execution which generates the demand to read memory using a current contents of a memory location stored in its own local independent memory; and
(c) satisfying all writing of contents by the processor or processors of said of said computer carrying out the execution which generates the demand to write to memory using a current contents of a memory location stored in its own local independent memory; andpropagating updates of the contents of said substantially identically named objects from all of said computers that write a contents to their own local independent memory to the corresponding local independent memory location of each of the other computers over said communications network and storing the updated contents as the current contents in each said local independent memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 46)
-
-
8. A multiple computer system comprising:
-
a plurality of computers interconnected by a communications network, each said computer having a processor or processors and including an independent local memory whose local memory capacity is not shared with the local independent memories of other of the computers; the plurality of computers configured to execute simultaneously on the plurality of computers an application program written to operate on only a single computer but modified by a modification routine to execute different portions of said application program simultaneously on the plurality of computers, a local independent memory structure defined in the local independent memory of each one of the plurality of computers the plurality of computers configured to provide execution of different portions of the application program that is written for execution on and that references only a single computer having a single processing unit or symmetric multiple processing units and the single independent local memory with a local memory capacity that is not shared with any other computer of said plurality of computers; program modification means for replacing the application program with a modified application program on each of said computers before execution of different portions of said application program on different ones of said plurality of computers so that the processing unit or units of each of said plurality of computers only reads from and writes to the local independent memory structure in its own local independent memory; means for executing the different portions of said modified application program on different ones of said plurality of computers and for each said different portion creating and storing an initial contents of each of said substantially identically named objects each in the corresponding local independent memory of each of the plurality of computers; means operable during said execution of said different portions;
(a) for maintaining and storing a current contents of each said identically named objects in each local independent memory location of each of the plurality of computers;
(b) for satisfying all reading of contents by the processor or processors of said computer carrying out the execution which generates the demand to read memory using a current contents of a memory location stored in its own local independent memory; and
(c) for satisfying all writing of contents by the processor or processors of said of said computer carrying out the execution which generates the demand to write to memory using a current contents of a memory location stored in its own local independent memory; anda distributed run time means configured on each said computer for propagating updates of the contents of said substantially identically named objects from all of said computers that write a contents to their own local independent memory to the corresponding local independent memory location of each of the other computers over said communications network and storing the updated contents as the current contents in each said local independent memory.
-
-
9. A method of running simultaneously on a plurality of computers at least one application program each written to operate on only a single computer having processing unit and a single local independent memory coupled with the processing unit that is not shared with the independent local memory of each other of the plurality of computers, the application program modified prior to execution on each of said plurality of computers to execute different portions of the application program simultaneously on the plurality of computers in a consistent and coordinated fashion across all the plurality of computers, said computers being interconnected by means of a communications network, said method comprising the steps of:
-
(i) executing said different portions of said at least one application program on different ones of said computers and for each said different portion creating a plurality of substantially identical objects each in the local independent memory of each of the plurality of corresponding computers; and during said execution of said different portions;
(a) storing a value of each said objects in each local independent memory location of each of the plurality of computers; and
(b) satisfying all read and write requests for values of said objects exclusively from the value stored in local independent memory of the computer that executes an application program portion generating the read request or write request. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 91)
-
-
47. A multiple computer system comprising:
-
a plurality of computers interconnected by a communications network, each said computer having a processor or processors and including an independent local memory whose local memory capacity is not shared with the local independent memories of other of the computers; the plurality of computers having at least one application program each written to operate only on a single computer but modified by a modification routine prior to execution on each of said plurality of computers to execute different portions of the application program simultaneously on the plurality of computers, wherein said different portions of said application program(s) execute substantially simultaneously on different ones of said plurality of computers; and
for each different portion a like plurality of substantially identical objects are created, each in the corresponding local independent memory of each one of the plurality of computers; andmeans configured during said execution of said different portions;
(a) for storing a value of each said objects in each local independent memory location of each of the plurality of computers; and
(b) for satisfying all read and write requests for values of said objects exclusively from the value stored in local independent memory of the computer that executes an application program portion generating the read request or write request. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90)
-
Specification