Scalable parallel processing on shared memory computers
First Claim
Patent Images
1. A method of parallel processing on a computer array comprising the steps of:
- creating a virtual single process multiple data computer system comprising an array controller and a plurality of parallel processing units, said array controller having a shared memory and each of said parallel processing units having a dedicated local memory;
creating programs for each of said parallel processing units wherein each of said programs performs a predetermined function on predetermined data stored on said dedicated memory of each parallel processing unit and each of said programs shares data directly with other programs of said programs using a shared memory architecture such that said array controller and said parallel processing units operate virtually as a single process multiple data computer;
determining a topology of a physical hardware configuration on which said virtual single process multiple data computer system will execute said programs, said topology having at least one computing node;
allocating at least one of said parallel processing units to at least one of said computing nodes based upon a distribution algorithm;
transferring said programs and said data to said computing nodes for each of said parallel processing units; and
executing said programs for said parallel processing units on said computing nodes.
13 Assignments
0 Petitions
Accused Products
Abstract
A virtual parallel computer is created within a programming environment comprising both shared memory and distributed memory architectures. At run time, the virtual architecture is mapped to a physical hardware architecture. In this manner, a massively parallel computing program may be developed and tested on a first architecture and run on a second architecture without reprogramming.
51 Citations
21 Claims
-
1. A method of parallel processing on a computer array comprising the steps of:
-
creating a virtual single process multiple data computer system comprising an array controller and a plurality of parallel processing units, said array controller having a shared memory and each of said parallel processing units having a dedicated local memory; creating programs for each of said parallel processing units wherein each of said programs performs a predetermined function on predetermined data stored on said dedicated memory of each parallel processing unit and each of said programs shares data directly with other programs of said programs using a shared memory architecture such that said array controller and said parallel processing units operate virtually as a single process multiple data computer; determining a topology of a physical hardware configuration on which said virtual single process multiple data computer system will execute said programs, said topology having at least one computing node; allocating at least one of said parallel processing units to at least one of said computing nodes based upon a distribution algorithm; transferring said programs and said data to said computing nodes for each of said parallel processing units; and executing said programs for said parallel processing units on said computing nodes. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer programming environment for parallel computing comprising:
-
at least one computer arranged in a hardware topology to create said computer programming environment, said at least one computer performing various processes of said computer programming environment; an array controller having a shared memory; a plurality of parallel processing units, each of said parallel processing units having a dedicated local memory; an editor process that creates a virtual single process multiple data computer system comprising said array controller and said a plurality of parallel processing units, said editor further creates programs for each of said parallel processing units wherein each of said programs performs a predetermined function on predetermined data stored on said dedicated memory of each parallel processing unit and each of said programs shares data directly with other programs of said programs using a shared memory architecture such that said array controller and said parallel processing units operate virtually as a single process multiple data computer; a virtual computer loader sub-process that determines a topology of a physical hardware configuration on which said virtual single process multiple data computer system will execute said programs, said topology having at least one computing node, said loader sub-process further allocates at least one of said parallel processing units to at least one of said computing nodes based upon a distribution algorithm and transfer said programs and said data to said nodes for each of said parallel processing units; and a virtual computer execution process that executes said programs for said parallel processing units. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A parallel processing computer system comprising:
-
at least one computing node comprising at least one processor, said computing node connected to a network; an editing system that creates a virtual single process multiple data computer system comprising an array controller and a plurality of parallel processing units, said array controller having a shared memory and each of said parallel processing units having a dedicated local memory, said editor further creates programs for each of said parallel processing units wherein each of said programs performs a predetermined function on predetermined data stored on said dedicated memory of each parallel processing unit and each of said programs shares data directly with other programs of said programs using a shared memory architecture such that said array controller and said parallel processing units operate virtually as a single process multiple data computer; and a system controller computer comprising a virtual computer loader routine that determines a topology of a physical hardware configuration on which said virtual single process multiple data computer will execute said programs, said topology comprising said at least one computing node, said loader routine further allocates at least one of said parallel processing units to at least one of said computing nodes based upon a distribution algorithm and transfer said programs and said data to said nodes for each of said parallel processing units, and a virtual computer execution routine that executes at least two of said programs for said parallel processing units substantially simultaneously. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21)
-
Specification