Task switching and inter-task communications for coordination of applications executing on a multi-user parallel processing architecture

  • US 10,430,242 B2
  • Filed: 04/30/2019
  • Issued: 10/01/2019
  • Est. Priority Date: 11/04/2011
  • Status: Active Grant
First Claim
Patent Images

1. A system for managing execution of a plurality of software applications on an array of processing units, the system comprising:

  • a core fabric comprisingthe array of processing units, anda plurality of input data buffers, each input data buffer being provided for buffering input data directed to a respective software application of the plurality of software applications and being dedicated to the respective software application, whereineach buffer of the plurality of input data buffers is deployed in the core fabric apart from the array of processing units, andeach software application of the plurality of software applications is provided one or more input data buffers of the plurality of input data buffers; and

    a controller comprising hardware logic and/or software logic for performing operations for repeatedly reconfiguring task assignment to the array of processing units, the operations comprising, for each iteration of a plurality of iterations,identifying, for each software application of at least a portion of the plurality of software applications, an amount of input data at one or more input data buffers of the plurality of input data buffers buffering data for the respective software application,allocating, to each software application of the portion of the plurality of software applications, a number of processing units of the array of processing units based at least in part on the amount of input data buffered for the respective software application, andfor each software application of the portion,i) assigning one or more task instances of the respective software application for concurrent processing of the amount of input data to the number of processing units allocated to the respective software application by the allocating as one or more assigned instances, andii) adjusting, based at least in part on a change in a count of units between the number of processing units allocated to the respective software application and a number of previously allocated processing units allocated to the respective software application during a previous iteration of the plurality of iterations, a relative portion of the amount of input data to be processed by at least one assigned instance of the one or more assigned instances;

    wherein, for one or more iterations of the plurality of iterations where a current number of the one or more processing units allocated to any given software application of the portion of the plurality of software applications is increased by the allocating, adjusting comprises relatively decreasing the portion of the amount of input data to be processed by at least one instance of the one or more assigned instances of the respective software application; and

    wherein for one or more other iterations of the plurality of iterations where a present number of the one or more processing units allocated to any given software application of the portion of the plurality of software applications is decreased by the allocating, adjusting comprises relatively increasing the portion of the amount of input data to be processed by at least one instance of the one or more assigned instances of the respective software application.

View all claims
    ×
    ×

    Thank you for your feedback

    ×
    ×