Computer architecture and method of operation for multi-computer distributed processing with finalization of objects
First Claim
1. A multiple computer system having at least one application program each written to operate only on a single computer but running simultaneously on a plurality of computers interconnected by a communications network,wherein different portions of each of said at least one application program(s) executes simultaneously on different ones of said computers and, for each said portion, a like plurality of identical objects are created, each in the corresponding computer and each having a identical name,wherein each said computer has an independent local memory, all read requests by each said computer are satisfied by reading only from the corresponding local memory of that computer and from no other computer,wherein a local memory capacity allocated to each said at least one application program is identical, the total memory capacity available to said each said at least one application program is said allocated memory capacity, andwherein all said identical objects are collectively deleted only when each one of said plurality of computers no longer needs to refer to their corresponding object.
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 particular, the finalization of JAVA language classes and objects is disclosed (162, 163) so finalization only occurs when the last class or object present on all machines is no longer required.
194 Citations
51 Claims
-
1. A multiple computer system having at least one application program each written to operate only on a single computer but running simultaneously on a plurality of computers interconnected by a communications network,
wherein different portions of each of said at least one application program(s) executes simultaneously on different ones of said computers and, for each said portion, a like plurality of identical objects are created, each in the corresponding computer and each having a identical name, wherein each said computer has an independent local memory, all read requests by each said computer are satisfied by reading only from the corresponding local memory of that computer and from no other computer, wherein a local memory capacity allocated to each said at least one application program is identical, the total memory capacity available to said each said at least one application program is said allocated memory capacity, and wherein all said identical objects are collectively deleted only when each one of said plurality of computers no longer needs to refer to their corresponding object.
-
7. A plurality of computers interconnected via a communications link and operating simultaneously at least one application program each written to operate only on a single computer,
wherein each said computer simultaneously executes a different portion of said at least one application program(s), each said computer in operating its application program portion needs, or no longer needs to refer to an object only in local memory physically located in each said computer, the contents of the local memory utilized by each said computer is fundamentally similar but not, at each instant, identical, wherein each said computer has an independent local memory, all read requests by each said computer are satisfied by reading only from the corresponding local memory of that computer and from no other computer, wherein the local memory capacity allocated to said at least one application program is identical, the total memory capacity available to said at least one application program is said allocated memory capacity, and wherein every one of said computers has a finalization routine which deletes a non-referenced object only if each one of said plurality of computers no longer needs to refer to their corresponding object.
-
10. A method of running simultaneously on a plurality of computers at least one application program each written to operate only on a single computer, each said computer having an independent local memory, said computers being interconnected by means of a communications network, said method comprising:
-
(i) executing different portions of said application program(s) on different ones of said computers and for each said different portion creating a like plurality of identical objects each in the corresponding computer and each having a identical name, satisfying all read requests by each said computer in executing said different portion by reading only from the corresponding local memory of that computer executing said different portion and from no other computer, wherein the local memory capacity allocated to the or each said application program is identical among said plurality of computers, the total memory capacity available to the or each said application program is said local allocated memory capacity; and (ii) deleting all said identical objects collectively only when all of said plurality of computers no longer need to refer to their corresponding object. - View Dependent Claims (11, 12, 13, 14, 36, 38, 40)
-
-
15. A computer implemented method of operating a plurality of computers to ensure consistent finalization of an application program written to operate only on a single computer but different portions of which are to be executed simultaneously each on a different one of a plurality of computers interconnected via a communications network, each said one of said plurality of computers having at least one local processor and an independent local memory coupled with said processor, said method comprising:
-
(i) scrutinizing said application program at, or prior to, or after loading to detect each program step defining a finalization routine, modifying said application program so that all read requests by each said computer in executing said different portion are satisfied by reading only from the corresponding local memory of that computer executing said different portion and from no other computer, the local memory capacity allocated to said application program being identical among said plurality of computers, and the total memory capacity available to said application program is said local allocated memory capacity; and (ii) modifying said finalization routine to ensure collective deletion of corresponding objects in all said computers only when each one of said computers no longer needs to refer to their corresponding object. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 39)
-
-
33. A multiple thread computer processing method in which different individual threads or different groups of threads of a single application program written to operate only on a single computer are simultaneously processed each on a corresponding different one of a plurality of computers each having a local memory and a local memory capacity, each of said plurality of single computers being interconnected via a communications link, and in which objects in the local memory physically associated with the computer processing of each thread have corresponding objects in the local memory of each other said computer, the method comprising:
-
satisfying all read requests by each said computer of said plurality of computers by reading only from the corresponding local memory of that computer which operates to execute a particular different individual threads or particular different group of threads and from no other computer, the local memory capacity allocated to the application program being identical for each computer, and the total memory capacity available to the application program being limited to said allocated memory capacity; and collectively deleting all said corresponding objects when each one of said plurality of computers no longer needs to refer to their corresponding object. - View Dependent Claims (34, 35)
-
-
37. A computer program product stored in a computer readable storage medium and comprising a set of program instructions which, when executed in a computer, are operable to permit a plurality of computers to carry out a method of operating a plurality of computers to ensure consistent finalization of an application program written to operate only on a single computer, wherein different portions of said set of program instructions are to be executed simultaneously each on a different one of a plurality of computers interconnected via a communications network, each of said plurality of computers having an in dependent local memory, said method comprising:
-
scrutinizing said application program at, or prior to, or after loading to detect each program step defining a finalization routine; modifying said application program so that all read requests by each said computer in executing said different portion are satisfied by reading only from the corresponding local memory of that computer executing said different portion and from no other computer, the local memory capacity allocated to said application program being identical among said plurality of computers, and the total memory capacity available to said application program is said local allocated memory capacity; and modifying said finalization routine to ensure collective deletion of corresponding objects in all said computers only when each one of said computers no longer needs to refer to their corresponding object. - View Dependent Claims (41)
-
-
42. 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 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 with the consequence that all read requests are satisfied locally from said independent local memory of said single computer and from no other computer; 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 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 identical objects are created in the independent local memory of the other computers, each object having a identical name; and means for collectively deleting all said identical objects on said single computer and on the other plurality of computers only when said single computer and each other one of said plurality of computers no longer needs to refer to their corresponding object. - View Dependent Claims (43, 44)
- the single computer comprising;
-
45. 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 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 with the consequence that all read requests are satisfied locally from said independent local memory of said single computer and from no other computer;
-
said single computer simultaneously executes a first portion of said application program and other of said plurality of different networked single computers simultaneously executes a second and other different portion with said first portion; said single computer, in operating said application program first portion, utilizes a 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 a finalization routine which deletes a non-referenced object only if said single computer and each one of said plurality of different networked single computers no longer needs to refer to their corresponding object.
-
-
46. A method of running an application program simultaneously on a single computer and simultaneously on a plurality of other single computers interconnected via a communications network, the application program written to operate only on a single computer and 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 other single computers, said method comprising:
-
(i) simultaneously executing a first portion of the application program on the single computer and second and other different portions of said application program on different ones of said plurality of single computers and for each said first portion and second and other different portions creating a like plurality of identical objects in the single independent local memory of the single computer and in the corresponding single independent local memory of the other single computers, wherein the local memory capacity of the single computer is not shared with or accessible by any other single computer of said plurality of single computers such that all read requests are satisfied locally and not from any other computer, each object having a identical name; and (ii) deleting all said identical objects in the local memory of the single computer and collectively in the local memories of the other plurality of single computers only when said single computer and all of said plurality of other computers no longer need to refer to their corresponding object in their respective independent local memories.
-
-
47. In a single computer, a method of ensuring consistent finalization of an application program written to operate only on one single computer but different portions of which are to be executed 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 a finalization routine instruction finalizing 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 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 such that all read requests are satisfied locally and not from any other computer and each object having a identical name; and (ii) modifying said finalization routine to ensure collective deletion of corresponding objects in said single computer and in all said other plurality of computers only when said single computer and each one of said other plurality of computers no longer needs to refer to their corresponding object.
-
-
48. In a single computer wherein a first portion of a multi-portion multiple thread processing computer operation is executing in which different individual threads of different ones of the multiple portions of a single application program referencing objects are simultaneously being processed on said single computer and on each one of a different one of a plurality of other computers interconnected via a communications link;
- a method comprising;
defining a memory structure in which said referenced objects are defined in an independent local memory of said single computer physically associated with the processing threads of said first portion and have corresponding objects in the local independent memory of each other of said plurality of computers, the single independent local memory of the single computer having a local memory capacity that is not shared with any other of said plurality of other computers such that all read requests are satisfied locally and not from any other computer; and deleting all said identical objects in the local memory of the single computer and collectively in the local memories of the other plurality of single computers only when said single computer and all of said plurality of other computers no longer need to refer to their corresponding object in their respective independent local memories.
- a method comprising;
-
49. A multiple computer system having at least one application program each written to operate on only a single computer but running 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 such that all read requests are satisfied locally and not from any other computer; means for executing different portions of said at least one application program simultaneously on different ones of said computers and for each portion a like plurality of identical objects are created in each independent local memory of the corresponding single computer and each object having a identical name; and means for collectively deleting all said identical objects only when each one of said plurality of computers no longer needs to refer to their corresponding object.
- the system comprising;
-
50. A method of ensuring consistent finalization of an application program written to operate only on a single computer but different portions of which are to be executed 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:
-
(i) scrutinizing said application program at, or prior to, or after loading to detect each application program step defining a finalization routine instruction finalizing 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 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 such that all read requests are satisfied locally and from any other computer and each object having a identical name; and (ii) modifying said finalization routine to ensure collective deletion of corresponding objects in all said single computers only when each one of said single computers no longer needs to refer to their corresponding object.
-
Specification