Method of dynamically allocating processors in a massively parallel processing system
First Claim
1. A method of operating a multi-dimensional mesh-connected processing system which includes a plurality of processors, wherein the processors dynamically allocate contiguous "n"-dimensional configurations of available, or free, processors to request processors under the control of a system controller, the method including the steps of:
- A. at the instruction of the system controlleri. numbering the requesting processors;
ii. sending the addresses of the requesting processors and their connection requirements to designated rendezvous processors associated with the numbers assigned in step A. i.; and
iii. sending to each of the other processors in the system, a request containing instructions which direct each of the other processors to determine if it is free;
B. each of the other processors, in response to the receipt of such a request, determining individually if it is free, and if it is freei. numbering itself bya. assigning itself a first index associated with a first dimension which indicates the number of free processors which are contiguous with it in the first dimension;
b. assigning itself a next index associated with a particular dimension which indicates the number of free processors which are contiguous with it in the particular dimension;
c. repeating step b for the remaining n-2 dimensions, such that each free processor has associated with it n indices; and
ii. if it has indices which indicate that it is contiguous with a number of free processors which satisfies the connection requirement of a requesting processor sending its address and indices to the rendezvous processors;
C. each rendezvous processor, in response to the receipt of address and connection requirements from the requesting processors and address and index information from the free processors allocating to each requesting processor from which it received a connection request an n-dimensional block of free processors, the rendezvous processor sending to each of the requesting processors the address of a free processor which has indices which together are greater than or equal to the number of processors requested by that requesting processor;
each requesting processor thereafter sending to each free processor allocated to it an identifier which identifies the allocated processor as a processor assigned to a particular task.
2 Assignments
0 Petitions
Accused Products
Abstract
An "n" dimensional mesh-connected massively parallel processing system uses pointers to connect requesting processors to allocated processors, and also, to access the allocated processors. The requesting and allocated processors are connected by (i) storing in the requesting processor or in a system controller a pointer which points to the allocated processors as a group and (ii) storing in each of the allocated processors, in a designated memory location, an assigned-marker, or an identifier which identifies the processor as a member of the identified group. When one or more requesting processors require connection to free processors, a request is sent to each processor in the system asking each of them to determine if it is free. Each of the processors which is free then assigns itself indices relating to its position in the mesh and its position relative to other free processors. Each free processor sends its indices to a rendezvous processor associated with the requesting processors, and the rendezvous processor allocates the free processors to a requesting processor based on the connection requirements of that requesting processor and the indices. If several requesting processors request connection to blocks of free processors, the rendezvous processor allocates non-overlapping blocks by assigning to the requesting processors only those free processors with indices which are modulo the associated connection requirement.
-
Citations
16 Claims
-
1. A method of operating a multi-dimensional mesh-connected processing system which includes a plurality of processors, wherein the processors dynamically allocate contiguous "n"-dimensional configurations of available, or free, processors to request processors under the control of a system controller, the method including the steps of:
-
A. at the instruction of the system controller i. numbering the requesting processors; ii. sending the addresses of the requesting processors and their connection requirements to designated rendezvous processors associated with the numbers assigned in step A. i.; and iii. sending to each of the other processors in the system, a request containing instructions which direct each of the other processors to determine if it is free; B. each of the other processors, in response to the receipt of such a request, determining individually if it is free, and if it is free i. numbering itself by a. assigning itself a first index associated with a first dimension which indicates the number of free processors which are contiguous with it in the first dimension; b. assigning itself a next index associated with a particular dimension which indicates the number of free processors which are contiguous with it in the particular dimension; c. repeating step b for the remaining n-2 dimensions, such that each free processor has associated with it n indices; and ii. if it has indices which indicate that it is contiguous with a number of free processors which satisfies the connection requirement of a requesting processor sending its address and indices to the rendezvous processors; C. each rendezvous processor, in response to the receipt of address and connection requirements from the requesting processors and address and index information from the free processors allocating to each requesting processor from which it received a connection request an n-dimensional block of free processors, the rendezvous processor sending to each of the requesting processors the address of a free processor which has indices which together are greater than or equal to the number of processors requested by that requesting processor; each requesting processor thereafter sending to each free processor allocated to it an identifier which identifies the allocated processor as a processor assigned to a particular task. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of operating a massively parallel processing system which includes a plurality of processors, wherein said processors dynamically allocate contiguous d-by-e blocks of available, or free, processors to requesting processors which require access to additional processors, the method including the steps of:
-
A. the requesting processors i. numbering themselves; ii. sending their addresses to designated rendezvous processors associated with the numbers assigned in step A.i; and iii. sending a request to the other processors in the system instructing the other processors to determine if they are free; B. each of the other processors, in response to the receipt of a request i. determining if it is free; ii. if it is free assigning itself vertical and horizontal indices which indicate the number of free processors which are contiguous with it in the vertical and horizontal directions, respectively; iii. the other processors which have vertical indices which are multiples of "d" and horizontal indices which are multiples of "e" determining the product of their individual vertical and horizontal indices; and iv. each of those with a product sending its address and product to the rendezvous processors; C. each of the rendezvous processors; i. allocating a block of free processors to each requesting processor, the block being associated with a free processor which sent the product and address information; ii. sending to each requesting processor the addresses of the free processors allocated to it; the requesting processors thereafter sending to the free processors allocated to them identifiers which identify the allocated processors as processors assigned to a particular task. - View Dependent Claims (14, 15)
-
-
16. A method of operating an "n"-dimensional mesh-connected processing system which includes a plurality of processors, wherein the processors dynamically allocate contiguous "n"-dimensional configurations of free processors to a requesting processor by:
-
A. the requesting processor sending a request to the other processors in the system instructing the other processors to determine if they are free; B. each of the other processors which are free, in response to the receipt of a request, assigning to itself a first index corresponding to a predetermined first orientation, the index indicating the number of contiguous free processors preceding and including that processor in a predetermined ordering of the processors in the first orientation; C. each of the other processors with a first index which is greater than or equal to the corresponding dimension of the required configuration, assigning to itself a second index corresponding to a second orientation, the second index indicating the number of contiguous free processors preceding and including that processor in a predetermined ordering of the processors in the second orientation; D. each of the other processors with a previous index which is greater that or equal to the corresponding dimension of the required configuration, assigning itself a next index corresponding to a next orientation, the next index indicating the number of contiguous free processors preceding and including that processor in a predetermined ordering of the processors in the corresponding orientation; E. each of the other processors repeating step D for each of the remaining n dimensions; F. each of the processors with a first index that is equal to or greater than the corresponding dimension of the required configuration and n indices which are equal to or greater than the other dimensions of the required configuration determining a block index, which is the product of coordinates associated with the processor based on its location within the mesh; G. each of the processors with a block index determining which of the processors has the smallest block index; H. the processor with the smallest block index sending its address to a rendezvous processor which is associated with the requesting processor; and I. the rendezvous processor allocating a block to the requesting processor by sending to it the address of the processor with smallest block index.
-
Specification