A system and method for grouping processors is presented. A processing
unit (PU) initiates an application and identifies the application's
requirements. The PU assigns one or more synergistic processing units
(SPUs) and a memory space to the application in the form of a group. The
application specifies whether the task requires shared memory or private
memory. Shared memory is a memory space that is accessible by the SPUs
and the PU. Private memory, however, is a memory space that is only
accessible by the SPUs that are included in the group. When the
application executes, the resources within the group are allocated to the
application's execution thread. Each group has its own group properties,
such as address space, policies (i.e. real-time, FIFO, run-to-completion,
etc.) and priority (i.e. low or high). These group properties are used
during thread execution to determine which groups take precedence over
other tasks.