COMPUTER ARCHITECTURE AND METHOD OF OPERATION FOR MULTI-COMPUTER DISTRIBUTED PROCESSING WITH INITIALIZATION OF OBJECTS
First Claim
1. A method of compiling or modifying an application program written to operate on only one computer to have different portions thereof to execute substantially simultaneously on different ones of a plurality of computers interconnected via a communications link without creating a distributed shared memory arrangement;
- said method comprising the steps of;
(i) detecting instructions which create objects a in local independent memory of a single one of said computers; and
(ii) activating an initialization routine following each said detected object creation instruction, said initialization routine forwarding each created object to the remainder of said computers.
0 Assignments
0 Petitions
Accused Products
Abstract
The present invention discloses a modified computer architecture which (50, 71, 72) 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 particular, the initialisation of JAVA language classes and objects is disclosed (162, 163) so all memory locations for all computers are initialized in the same manner.
76 Citations
57 Claims
-
1. A method of compiling or modifying an application program written to operate on only one computer to have different portions thereof to execute substantially simultaneously on different ones of a plurality of computers interconnected via a communications link without creating a distributed shared memory arrangement;
- said method comprising the steps of;
(i) detecting instructions which create objects a in local independent memory of a single one of said computers; and
(ii) activating an initialization routine following each said detected object creation instruction, said initialization routine forwarding each created object to the remainder of said computers. - View Dependent Claims (2, 17, 19, 42)
- said method comprising the steps of;
-
3. A method of ensuring for a single computer consistent initialization of an application program written to operate on only one computer but different portions of which application program are to be executed substantially simultaneously each on a different one of a plurality of computers:
- said plurality of computers including said single computer and being interconnected via a communications network without forming a distributed shared memory arrangement;
said method comprising the steps of;(i) scrutinizing said application program at, or prior to, or after loading to detect each program step defining an initialization routine; and (ii) modifying said initialization routine to generate a corresponding modified initialization routine to ensure consistent operation of all said computers. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 44)
- said plurality of computers including said single computer and being interconnected via a communications network without forming a distributed shared memory arrangement;
-
21. A single computer intended to operate in a multiple computer system comprising a plurality of computers interconnected by a communications network without forming a distributed shared memory arrangement, said single computer having at least one application program each written to operate on only one computer but running simultaneously on said plurality of computers wherein different portions of said at least one application program execute substantially simultaneously on different ones of said plurality of computers and for each said different portion a like plurality of substantially identical objects are created;
- each in a local independent memory of the corresponding computer and each having a substantially identical name; and
wherein the initial contents of each of said substantially identically named objects is substantially the same. - View Dependent Claims (22, 23, 24, 25, 26)
- each in a local independent memory of the corresponding computer and each having a substantially identical name; and
-
27. A single computer arranged to operate within a plurality of computers interconnected via a communications link without forming a distributed shared memory arrangement, said plurality of computers substantially simultaneously operating at least one application program each written to operate on only one computer;
- wherein each said computer substantially simultaneously executes a different portion of said at least one application program;
each said computer in operating its application program portion creates objects only in local independent memory physically located in each said computer, the contents of the local independent memory utilized by each said computer are fundamentally similar but not, at each instant, identical; and
every one of said computers has a distribution update means to distribute to all other said computers objects created by said single computer. - View Dependent Claims (28, 29, 30)
- wherein each said computer substantially simultaneously executes a different portion of said at least one application program;
-
31. A method of running on a single computer at least one application program each written to operate on only one computer;
- said single computer being intended to operate in cooperation with a plurality of other computers which are interconnected by means of a communications network without forming a distributed shared memory arrangement;
said method comprising the steps of;(i) executing different portions of said at least one application program substantially simultaneously on different ones of said other computers and for each said portion creating a like plurality of substantially identical objects each in a local independent memory of the corresponding computer and each having a substantially identical name; and (ii) creating the initial contents of each of said identically named objects substantially the same. - View Dependent Claims (32, 33, 34, 35, 40, 45, 46)
- said single computer being intended to operate in cooperation with a plurality of other computers which are interconnected by means of a communications network without forming a distributed shared memory arrangement;
-
36. In a multiple thread processing computer operation taking place on a single computer intended to operate in cooperation with a plurality of computers and in which individual threads of a single application program written to operate on only one computer are simultaneously being processed each on a different corresponding one of a plurality of computers interconnected via a communications link without forming a distributed shared memory arrangement;
- the improvement comprising;
communicating objects created in local independent memory physically associated with the computer processing each thread to the local independent memory of each other said computer via said communications link. - View Dependent Claims (37, 38, 39, 41, 43)
- the improvement comprising;
-
47. In a multiple computer system comprising a plurality of computers, a method of compiling or modifying an application program written to operate on only one computer to have different portions thereof to execute substantially simultaneously on different ones of said plurality of computers interconnected via a communications link without creating a distributed shared memory arrangement;
- said method comprising the steps of;
(i) detecting instructions which create objects a in local independent memory of a single one of said computers of said plurality of computers; and (ii) activating an initialization routine following each said detected object creation instruction, said initialization routine forwarding each created object to the remainder of said plurality of computers.
- said method comprising the steps of;
-
48. In a multiple computer system comprising a plurality of computers interconnected via a communications network, a method of ensuring for a single computer selected from among the plurality of computers consistent initialization of an application program written to operate on only one computer but different portions of which application program are to be executed substantially simultaneously each on a different one of said plurality of computers:
- said plurality or computers including said single computer and being interconnected via a communications network without forming a distributed shared memory arrangement;
said method comprising the steps of;(i) scrutinizing said application program at, or prior to, or after loading to detect each program step defining an initialization routine; and (ii) modifying said initialization routine to generate a corresponding modified initialization routine to ensure consistent operation of all said computers.
- said plurality or computers including said single computer and being interconnected via a communications network without forming a distributed shared memory arrangement;
-
49. A multiple computer system comprising a plurality of computers interconnected by a communications network without forming a distributed shared memory arrangement, said plurality of computers each having at least one application program each written to operate on only one computer but running simultaneously on said plurality of computers wherein different portions of said at least one application program execute substantially simultaneously on different ones of said plurality of computers and for each said different portion a like plurality of substantially identical objects are created;
- each in a local independent memory of the corresponding one of the plurality of computers and each having a substantially identical name; and
wherein the initial contents of each of said substantially identically named objects is substantially the same.
- each in a local independent memory of the corresponding one of the plurality of computers and each having a substantially identical name; and
-
50. A multiple computer system comprising:
-
a plurality of single computers arranged to operate within said multiple computer system, said plurality of computers interconnected via a communications link without forming a distributed shared memory arrangement, said plurality of computers substantially simultaneously operating at least one application program each written to operate on only one computer;
wherein each said computer substantially simultaneously executes a different portion of said at least one application program;each said computer in operating its application program portion creates objects only in local independent memory physically located in each said computer, the contents of the local independent memory utilized by each said computer are fundamentally similar but not, at each instant, identical; and every one of said computers has a distribution update means to distribute to all other said computers objects created by said single computer.
-
-
51. A method of running on a multiple computer system comprising a plurality of single computers at least one application program each written to operate on only one computer;
- each said single computer being intended to operate in cooperation with said plurality of computers which are interconnected by means of a communications network without forming a distributed shared memory arrangement;
said method comprising the steps of;(i) executing different portions of said at least one application program substantially simultaneously on different ones of said plurality of computers and for each said portion creating a like plurality of substantially identical objects each in a local independent memory of the corresponding single computer and each having a substantially identical name; and (ii) creating the initial contents of each of said identically named objects substantially the same.
- each said single computer being intended to operate in cooperation with said plurality of computers which are interconnected by means of a communications network without forming a distributed shared memory arrangement;
-
52. In a multiple thread processing computer operation configured to operate in cooperation with a plurality of single computers and in which individual threads of a single application program written to operate on only one computer are simultaneously being processed each on a different corresponding one of said plurality of computers interconnected via a communications link without forming a distributed shared memory arrangement;
- the improvement comprising;
communicating objects created in local independent memory physically associated with the single computer from the plurality of computers processing each thread to the local independent memory of each other said plurality of computer via said communications link different from the single computer processing the tread.
- the improvement comprising;
-
53. A single computer configured for operating with a plurality of single computers in a multiple computer system and having at least one application program written to operate on only a single computer but running substantially simultaneously on the plurality of single computers interconnected by a communications network;
- the single computer comprising;
a local independent memory structure defined in a local independent memory of the single computer and configured to provide execution of application program code of the application program including a plurality of code threads that are written with the intent to execute on and reference 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 single computer of said plurality of single computers; the single computer configured for and executing a different portion of said at least one application program than the other computers of the plurality of single computers, and executing its portion substantially simultaneously with the execution of different portions of the application program on the different other ones of said plurality of computers and for each portion in said single computer a plurality of objects are created in its independent local memory while a like plurality of substantially identical objects are created in the independent local memory of the other computers and each object having a substantially identical name; and means for consistently creating or initializing all said identical objects on said single computer and on the other plurality of computers.
- the single computer comprising;
-
54. A single computer configured for use with a plurality of different networked single computers that are interconnected via a communications link, the single computer and the plurality of different computers operating substantially simultaneously to execute an application program written to operate on only a single computer, the application program having application program code including a plurality of code threads all intended to execute on and reference a single computer having a single processing unit or symmetric multiple processing units and a single independent local memory with a local memory capacity that is not shared with any other single computer of said plurality of single computers;
-
said single computer substantially simultaneously executes a first portion of said application program and other of said plurality of different networked single computers substantially simultaneously executes a second and other different portion with said first portion; said single computer in operating said application program first portion utilizes an named object only by using a local replica of the named object stored in independent local memory physically located in said single computer with a local memory capacity that is not shared with or accessible by any other of the plurality of different networked single computers;
the contents of the independent local memory utilized by said single computer and by each said plurality of different networked single computers is fundamentally similar but not, at each instant, identical; andsaid single computer having and executing an object creation or initialization routine which creates or initializes objects consistently across the plurality of computers.
-
-
55. In a single computer, a method of ensuring consistent initialization of an application program written to operate only on one single computer but different portions of which are to be executed substantially simultaneously on the single computer and on each different one of a plurality of computers interconnected with each other and with the single computer via a communications network, the application program having application program code including a plurality of code threads all intended to execute on and reference only one computer having a single processing unit or symmetric multiple processing units and only one independent local memory with a local memory capacity that is not shared with any other computer, said method comprising:
-
(i) scrutinizing said application program at, or prior to, or after loading on said single computer to detect each application program step defining an initialization routine instruction creating or initializing an object utilizing said single computer or one of said plurality of other computers in the application program, wherein for each said different portion of the application program a like plurality of substantially identical objects are created in each single independent local memory of the corresponding computer including in the single independent memory of the single computer and with a local memory capacity that is not shared with or accessible by any other computer of said plurality of computers and each object having a substantially identical name; and (ii) modifying said initialization routine to generate a corresponding modified initialization routine to ensure consistent operation of all said plurality of computers and forwarding each created object to the remainder of said plurality of computers.
-
-
56. A multiple computer system having at least one application program each written to operate on only a single computer but running substantially simultaneously on a plurality of single computers interconnected by a communications network;
- the system comprising;
a local independent memory structure defined for each of the plurality of single computers configured to provide execution of application program code of the application program including a plurality of code threads that are written with the intent to execute on and reference a single computer having a single processing unit or symmetric multiple processing units and a single independent local memory with a local memory capacity that is not shared with any other single computer of said plurality of single computers; means for executing different portions of said at least one application program substantially simultaneously on different ones of said computers and for each portion a like plurality of substantially identical objects are created in each independent local memory of the corresponding single computer and each object having a substantially identical name; and a distribution update means including a distributed run time to distribute to all other said plurality of computers objects created or initialized by said single computer.
- the system comprising;
-
57. A method of ensuring consistent initialization of an application program written to operate only on a single computer but different portions of which are to be executed substantially simultaneously each on a different one of a plurality of single computers interconnected via a communications network, the application program having application program code including a plurality of code threads all intended to execute on and reference a single computer having a single processing unit or symmetric multiple processing units and a single independent local memory with a local memory capacity that is not shared with any other single computer of said plurality of single computers, said method comprising the steps of:
-
(i) scrutinizing said application program at, or prior to, or after loading to detect each application program step defining a object creation or initialization routine instruction creating or initializing an object utilizing one of said computers in the application program, wherein for each said different portion of the application program a like plurality of substantially identical objects being created in each single independent local memory of the corresponding computer with a local memory capacity that is not shared with or accessible by any other single computer of said plurality of single computers and each object having a substantially identical name; and (ii) modifying said object creation or initialization routine to ensure collective creation or initialization of corresponding objects in all said single computers to ensure consistent object creation and initialization in everyone of said plurality of computers.
-
Specification