Application load adaptive multi-stage parallel data processing architecture

  • US 10,133,599 B1
  • Filed: 06/21/2018
  • Issued: 11/20/2018
  • Est. Priority Date: 11/04/2011
  • Status: Active Grant
First Claim
Patent Images

1. A system including processors and comprising a plurality of subsystems, implemented on hardware logic and/or software logic executing on the processors, for dynamic resource management of a pool of processing resources on behalf of application programs, the system comprising:

  • a first subsystem configured to periodically allocate a plurality of processing units of the pool of processing resources among a plurality of application programs over time, whereinthe plurality of processing units comprises units of at least two types of processing units and/or units of a reconfigurable type, andallocating the plurality of processing units among the plurality of application programs is based at least in part on i) a respective processing demand of each of the plurality of application programs, and ii) a respective processing resource quota of each program of a subset of the plurality of application programs;

    a second subsystem configured to, for each program of the plurality of application programs, select a set of highest priority instances of one or more instances of a respective program, whereina number of instances in the set of instances corresponds to a number of processing units allocated to the respective application program by the first subsystem during a current allocation period, andeach instance of the set of highest priority instances is selected based at least in part on a) the number of processing units allocated to the respective program and b) a relative readiness for execution among the one or more instances of the respective application program; and

    a third subsystem configured to assign, for each of the plurality of application programs, the respective set of highest priority instances to a subset of the processing units allocated by the first subsystem for the respective application program for execution during an upcoming allocation period, wherein, for at least a portion of instances of at least a portion of the plurality of application programs,a respective instance of the respective set of highest priority instances is associated with a processing unit type or configuration, whereinassigning comprisesplacing the respective instance to a respective processing unit of the plurality of processing units based at least in part on the processing unit type or configuration associated with the respective instance, andprioritizing placement of the respective instance to the particular type or configuration processing unit demanded;

    wherein the system is further configured to periodically adjust allocations of the plurality of processing units of the pool of processing resources over time, wherein, for each periodic adjustment,the adjusting is followed by the selecting and the assigning.

View all claims
    ×
    ×

    Thank you for your feedback

    ×
    ×