Dynamically partitionable parallel processors
First Claim
1. A system for dynamically partitioning a plurality of parallel processors into different subcombinations for the performance of specific transactions involving limited and variable groupings of processors, comprising:
- a plurality of processors, at least some of the processors including means for establishing a sequence of steps for a given transaction, each of the processors including a network interface having a network accessible random access memory storing a fixed length status word at each of a plurality of dynamic grouping addresses;
a network coupled to each of the processors at the network interface thereof and providing messages from any processor concurrently to the processor network interface of all processors, the messages including data for testing the status words at selected dynamic grouping addresses and for establishing membership of a selected processor in one or more groups of a selected dynamic grouping;
the processors each including means for modifying the status words at selected dynamic grouping addresses in their network accessible memory in accordance with the transaction step being performed thereat;
such that a transaction can be carried out at selected processors using processing time only at the selected processors, other processors being isolated from messages received from the network by determining at the network interface whether or not the processor is a participant in a dynamic grouping, and its status relative to the transaction.
5 Assignments
0 Petitions
Accused Products
Abstract
A system for dynamically partitioning processors in a multiprocessor system intercoupled by a network utilizes, in association with each processor, a network accessible, locally changeable memory section. An available one of a number of common dynamic group addresses in each of the memories is reserved for a subgroup for the performance of subtasks within an overall task, and members of the group are designated as they receive messages to be processed. The members then locally update status words which establish membership, group validity and semaphore conditions, so that transactions may be initiated, coordinated and terminated with minimum involvement of processors that have no relevant subtasks. When the full task is completed the dynamic group is relinquished for use when a new task is to be undertaken. The system enables many tasks to be carried out concurrently with higher intercommunication efficiency.
-
Citations
20 Claims
-
1. A system for dynamically partitioning a plurality of parallel processors into different subcombinations for the performance of specific transactions involving limited and variable groupings of processors, comprising:
-
a plurality of processors, at least some of the processors including means for establishing a sequence of steps for a given transaction, each of the processors including a network interface having a network accessible random access memory storing a fixed length status word at each of a plurality of dynamic grouping addresses; a network coupled to each of the processors at the network interface thereof and providing messages from any processor concurrently to the processor network interface of all processors, the messages including data for testing the status words at selected dynamic grouping addresses and for establishing membership of a selected processor in one or more groups of a selected dynamic grouping; the processors each including means for modifying the status words at selected dynamic grouping addresses in their network accessible memory in accordance with the transaction step being performed thereat; such that a transaction can be carried out at selected processors using processing time only at the selected processors, other processors being isolated from messages received from the network by determining at the network interface whether or not the processor is a participant in a dynamic grouping, and its status relative to the transaction. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for dynamically partitioning tasks, and steps within tasks, among a plurality of processors which perform assignments asynchronously and communicate by sending competing messages concurrently to other processors via a network which sorts in accordance with data content, comprising:
-
network interface means individually associated with each different processor and including memory means for providing a plurality of network accessible dynamic group storage locations, each having a fixed number of binary digits, each processor being simultaneously assignable to one or more dynamic groups; the processors including means for identifying via the network those processors having responsibility for different parts of a task and concurrently entering fixed length status words in an available and common dynamic group storage location for each processor; and the processors including means cooperative with the network interface means for locally changing the status words in accordance with (1) the status of the task being undertaken at that processor and (2) while testing is being undertaken. - View Dependent Claims (8, 9)
-
-
10. A system for dynamically partitioning tasks among a plurality of parallel processors interconnected by network means, comprising:
-
individual interface means intercoupling the different ones of the processors and the network means and including means for storing a plurality of network accessible dynamic group status words in specific locations; and the processors including means for partitioning a task to those other processors taking part in the task each processor being a member of at least one dynamic group by controlling word patterns in a specific location in the interface means for those processors involved in the task; the interface means including means for intercommunicating with other processors as to the task being performed by addressing the specific location; and the processors including means to locally update the status word in the specific location to reflect changes in the status of the step being performed thereat. - View Dependent Claims (11)
-
-
12. A method of carrying out transactions in a multiprocessor system in which processors are addressed concurrently via a network and identify locally whether a message is intended for them, and in which two or more processors are used in a transaction sequence involving multiple steps, comprising the method steps of:
-
denoting each processor involved in a transaction as a member of at least one dynamic group by a locally stored, network accessible status word while distributing steps to be performed to the processors; locally maintaining an updated status word for each particular transaction in accordance with the step to be performed at each processor involved in the transaction; and relinquishing the status word from all affected processors when the transaction is complete. - View Dependent Claims (13, 14, 15)
-
-
16. A method of partitioning related assignments among a number of processors which concurrently process different assignments in asynchronous fashion and which communicate on a data priority basis with other processors via a network, comprising the steps of:
-
sequencing, at an originating processor, a task to be performed; establishing by the originating process an available common reference identity for all processors, the common identity being in the form of an externally accessible memory address; transmitting an assignment to a first execution processor from the originating processor, the assignment including a designation of membership in at least one dynamic group for the memory address; verifying at the first execution processor that the assignment is not in conflict with other assignments while concurrently locally entering a globally accessible semaphore at the memory address such that an indication is provided that verification is in process; transmitting further, related, assignments to additional execution processors including a designation of membership in at least one dynamic group for the memory address; performing the assignments at the execution processors in accordance with priorities and prior assignments; returning the completed assignments from the execution processors to the originating processor by identifying the selected memory address at the originating processor; locally changing, at the completion of return of each assignment, the contents of the selected memory address to reflect completion status of the member of the dynamic group; checking at the completion of each assignment to determine if all assignments related to the dynamic group have been completed; and relinquishing the dynamic group and the selected memory address when the task involving the successive assignment has been completed. - View Dependent Claims (17, 18, 19, 20)
-
Specification