Application Load Adaptive Multi-stage Parallel Data Processing Architecture
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods provide an extensible, multi-stage, realtime application program processing load adaptive, manycore data processing architecture shared dynamically among instances of parallelized and pipelined application software programs, according to processing load variations of said programs and their tasks and instances, as well as contractual policies. The invented techniques provide, at the same time, both application software development productivity, through presenting for software a simple, virtual static view of the actually dynamically allocated and assigned processing hardware resources, together with high program runtime performance, through scalable pipelined and parallelized program execution with minimized overhead, as well as high resource efficiency, through adaptively optimized processing resource allocation.
6 Citations
41 Claims
-
1-21. -21. (canceled)
-
22. A control system for an array of processor cores, the system comprising:
-
a first subsystem for allocating the cores among a set of software programs; a second subsystem for, at least in part based on said allocating, assigning instances of said programs for execution on the cores; and a third subsystem configured to, at least in part based on said assigning, to connect the cores and program instance specific memory segments, wherein at least one of said subsystems is implemented in hardware logic. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29)
-
-
30. A method for computing resource management configured to periodically, once for each successive core allocation period (CAP), execute an allocation of an array of processing cores among a set of software programs, said method comprising:
-
(i) a first round of the allocation, by which round a subset of the cores are allocated among the programs so that any actually materialized demands for the cores by each of the programs up to their respective entitled shares of the cores are met; (ii) a second round of the allocation, by which round any of the cores that remain unallocated after the first round are allocated among the programs whose materialized demands for the cores had not been met by amounts of the cores so far allocated to them by the present execution of the allocation; and wherein the materialized demand for the cores by a given one of the programs is expressed as a number of cores that the program is able to execute on in parallel on said succeeding CAP, and, for at least some of the CAPs, exceeds a number of the cores assigned to the program prior to said succeeding CAP. - View Dependent Claims (31, 32, 33, 34, 35, 36)
-
-
37. A control process for an array of processor cores comprising:
-
for each of a number of successive core allocation periods (CAPs), selecting, from a group of instances of a set of software programs, specific instances, referred to as selected instances, for execution on the cores of the array for a next CAP; and at least in part based on the selecting, assigning the selected instances for execution on the array of cores for the next CAP, wherein; the selecting is done at least in part based on respective capacity demand indications of individual programs among the set; and the capacity demand indications, in case of at least one of the programs, are based on at least one of;
i) a measure of input data that said one program presently has available for processing, ii) a number of instances of said one program that presently have input data available for processing. - View Dependent Claims (38, 39, 40, 41)
-
Specification