COMPUTER ARCHITECTURE AND METHOD OF OPERATION FOR MULTI-COMPUTER DISTRIBUTED PROCESSING WITH REPLICATED MEMORY
First Claim
1. A method of operating, on a multiple computer system comprising a plurality of computers, a stored application program having code written to operate only on a single computer system comprising a single computer having a single CPU or a single computer having symmetric multiple processors, said code including a plurality of threads all intended to execute in cooperation with a single memory, wherein:
- all of said plurality of computers are interconnected via a communications link;
each one of said plurality of computers is independent of the other ones of said plurality of computers, has a single independent local memory which is not shared with any other computer of said plurality of computers and accessible only by the corresponding portion of said application program executing on that single computer, has a substantially similar copy of said application program code stored therein, and has at least one thread;
each said single independent local memory has memory locations only addressable and accessible by the thread or threads of the corresponding computer executing the corresponding copy of said application program code, and each said independent local memory has stored therein all application memory values arising from the execution of all said threads of all said plurality of computers;
said method of operating comprising the steps of;
(i) allocating said plurality of threads of said stored application program code amongst said multiple computers so that at least a portion of the application including at least one thread of said application program code is allocated to a corresponding one of said multiple computers for execution thereon by one or more threads of that one of said multiple computers;
(ii) substantially simultaneously executing said application program code thread or threads by those ones of said multiple computers having an application program code thread or threads allocated thereto;
(iii) storing in said single independent local memory of each said computer a replica of each and every application memory value addressable by each and every said thread of each and every one of said plurality of computers; and
(iv) communicating via said communications link each new application memory value which has overwritten a previous corresponding value as a consequence of execution of said application program code on any one of said single computers, to the independent local memory of all other ones of said computers, whereby the values of said replica application memory values of all said computers remain, subject to an updating transmission delay, substantially identical.
1 Assignment
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.
-
Citations
27 Claims
-
1. A method of operating, on a multiple computer system comprising a plurality of computers, a stored application program having code written to operate only on a single computer system comprising a single computer having a single CPU or a single computer having symmetric multiple processors, said code including a plurality of threads all intended to execute in cooperation with a single memory, wherein:
-
all of said plurality of computers are interconnected via a communications link; each one of said plurality of computers is independent of the other ones of said plurality of computers, has a single independent local memory which is not shared with any other computer of said plurality of computers and accessible only by the corresponding portion of said application program executing on that single computer, has a substantially similar copy of said application program code stored therein, and has at least one thread; each said single independent local memory has memory locations only addressable and accessible by the thread or threads of the corresponding computer executing the corresponding copy of said application program code, and each said independent local memory has stored therein all application memory values arising from the execution of all said threads of all said plurality of computers; said method of operating comprising the steps of; (i) allocating said plurality of threads of said stored application program code amongst said multiple computers so that at least a portion of the application including at least one thread of said application program code is allocated to a corresponding one of said multiple computers for execution thereon by one or more threads of that one of said multiple computers; (ii) substantially simultaneously executing said application program code thread or threads by those ones of said multiple computers having an application program code thread or threads allocated thereto; (iii) storing in said single independent local memory of each said computer a replica of each and every application memory value addressable by each and every said thread of each and every one of said plurality of computers; and (iv) communicating via said communications link each new application memory value which has overwritten a previous corresponding value as a consequence of execution of said application program code on any one of said single computers, to the independent local memory of all other ones of said computers, whereby the values of said replica application memory values of all said computers remain, subject to an updating transmission delay, substantially identical. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A multiple computer system comprising a plurality of computers and on which is executed an application program having code written to operate only on a single computer system comprising a single computer having a single CPU or a single computer having symmetric multi-processors, said code including a plurality of threads all intended to execute in cooperation with a single memory, wherein:
-
all of said plurality of computers are interconnected via a communications link; each one of said plurality of computers is independent of the other ones of said plurality of computers, has a single independent local memory which is not shared with any other computer of said plurality of computers, has a substantially similar copy of said application program code stored therein, and has at least one thread; each said single independent local memory has memory locations only addressable and accessible by the thread or threads of the corresponding computer executing the corresponding copy of said application program code, and each said independent local memory has stored therein all application memory values arising from the execution of all said threads of all said plurality of computers; said plurality of threads of said stored application program code being allocated amongst said multiple computers so that at least a portion of the application program including at least one thread of said application program code is allocated to a corresponding one of said multiple computers for substantially simultaneous execution thereon by one or more threads of that one of said multiple computers; said single independent local memory of each said computer stores a replica of each and every application memory value addressable by each and every said thread and each and every one of said plurality of computers; and each new application memory value which is written over a previous corresponding value that has a consequence of execution of said application program code of any one of said single computers, is communicated via said communications link to the single independent local memory of all other ones of said computers, so that the values of said replica application memory values of all said computers remain, subject to an updating transmission delay, substantially identical. - View Dependent Claims (12, 13, 14)
-
-
15-16. -16. (canceled)
-
17. In a multiple computer system including a plurality of single computers interconnected via a communications link, wherein each single computer:
- (a) has a single central processing unit (CPU) or symmetric multiple processing units, (b) a single independent local memory which is not shared with any other computer of said plurality of single computers, and (c) that is independent of the other ones of said plurality of single computers;
each one of said plurality of single computers has a substantially similar copy of an application program having code written to operate only on a single computer system stored therein, the code including a plurality of threads all intended to execute in cooperation with a single memory, and has at least one thread; and each said single independent local memory has memory locations only addressable and accessible by the thread or threads of the corresponding single computer executing the corresponding copy of said application program code, and each said independent local memory has stored therein all application memory values arising from the execution of all said threads of all said plurality of computers; a method of operating said stored application program comprising the steps of; (i) allocating said plurality of threads of said stored application program code amongst said plurality of single computers so that at least a portion of the application program including at least one thread of said application program code is allocated to a corresponding one of said plurality of single computers for execution thereon by one or more threads of that one of said plurality of single computers; (ii) substantially simultaneously executing said application program code thread or threads by those ones of said plurality of single computers having an application program code thread or threads allocated thereto; (iii) storing in said single independent local memory of each said single computer a replica of each and every application memory value addressable by each and every said thread of each and every one of said plurality of computers; and (iv) communicating via said communications link each new application memory value which has overwritten a previous corresponding value as a consequence of execution of said application program code on any one of said single computers, to the single independent local memory of all other ones of said plurality of single computers, so that the values of said replica application memory values of all said single computers remain, subject to an updating transmission delay, substantially identical. - View Dependent Claims (18, 19, 21, 26)
- (a) has a single central processing unit (CPU) or symmetric multiple processing units, (b) a single independent local memory which is not shared with any other computer of said plurality of single computers, and (c) that is independent of the other ones of said plurality of single computers;
- 20. (canceled)
-
22. (canceled)
-
24-25. -25. (canceled)
-
27-40. -40. (canceled)
Specification