×

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

DC
  • US 10,620,998 B2
  • Filed: 09/20/2019
  • Issued: 04/14/2020
  • Est. Priority Date: 11/04/2011
  • Status: Active Grant
First Claim
Patent Images

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

  • providing, for each software application of the plurality of software applications, one or more input buffers of a plurality of input buffers,each input buffer being provided for buffering processing load input directed to a respective software application of the plurality of software applications and being dedicated to the respective software application; and

    repeatedly rearranging, by a controller comprising hardware logic and/or software logic, task assignment to the array of processing units and communication path connectivity for the array of processing units, whereinthe array of processing units comprises a plurality of processing units of a reconfigurable type, each being configurable in two or more application specific configurations, andrearranging comprises, for each iteration of a plurality of iterations,allocating, to each software application of at least a portion of a plurality of software applications as a set of active software applications, a number of units of the array of processing units at least in part in accordance with a plurality of demand expressions, each demand expression of the plurality of demand expressions corresponding to a different software application of the plurality of software applications, whereineach demand expression of the plurality of demand expressions is based at least in part on a measure of an amount of a processing load input at the one or more input buffers of the respective software application,assigning, for each application of the set of active software applications, one or more task instances of the respective active application to one or more processing units of the plurality of processing units in accordance with the allocating, whereinat least one task instance of the one or more task instances is a ready-to-execute task instance of the respective software application for processing the data at the one or more input data buffers of the respective software application,each task instance of the one or more task instances is assigned to a different processing unit of the one or more processing units such that assigning results in each processing unit of the plurality of processing units being assigned only one respective task instance for any given iteration of the plurality of iterations, andassigning comprises, for at least one task instance of the one or more task instances of a given software application of the plurality of software applications, reconfiguring the respective processing unit to an application specific configuration of the two or more application specific configurations, wherein the application specific configuration is associated with the at least one task instance, andcausing connection, in accordance with the assigning, of the processing load input from each buffer of at least a portion of the plurality of input buffers to a different unit of the plurality of processing units to connect respective processing load input to the respective software application that the respective processing load input is directed to.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×