A method of managing code and data on one or more additional processing units, hereafter referred to as SPUs, in a processor having one or more central processors and one or more SPUs, each SPU having a processor and a local memory, a main memory being accessible by the SPUs and the one or more central processors, the method comprising the steps of: under control of an SPU policy module manager, hereafter referred to as an SPMM, running on each of the SPUs, assigning a selected one or more work queues from the main memory to a selected one or more of the SPUs according to a hierarchy of precedence, including determining whether one or more work queues are schedulable, and have readiness, determining a per-SPU priority value for the one or more work queues, determining a work queue affinity for the one or more work queues, wherein the work queue affinity indicates whether a work queue has code and/or data loaded into the local store of a particular SPU, and determining an urgency for the one or more work queues, wherein determining an urgency for the one or more work queues includes determining a Contention, Contention being a number of SPUs used to process work forming a part of the work queue, for the one or more work queues and determining a Minimum Contention for the one or more work queues and wherein the assigning step comprises determining whether the contention of a work queue is greater than zero but less than the corresponding Minimum Contention and, if so, assigning that work queue over other work queues having equal priority with that work queue but for which the contention of the other work queues is not greater than zero or not less than the corresponding Minimum Contention; loading a policy module from main memory for the selected one or more work queues to the selected one or more SPUs, a policy module being a manager object on an SPU for processing work queues, wherein each policy module is operable to manage its own context data, being data representing a current state of that SPU; under control of the policy module, loading work from one or more of the selected one or more work queues into the local memory of the selected SPU; performing the work with the selected SPU; and after completing the work or upon a pre-emption, returning control of the selected SPU to the SPMM. under control of an SPU policy module manager, hereafter referred to as an SPMM, running on each of the SPUs, assigning a selected one or more work queues from the main memory to a selected one or more of the SPUs according to a hierarchy of precedence, including determining whether one or more work queues are schedulable, and have readiness, determining a per-SPU priority value for the one or more work queues, determining a work queue affinity for the one or more work queues, wherein the work queue affinity indicates whether a work queue has code and/or data loaded into the local store of a particular SPU, and determining an urgency for the one or more work queues, wherein determining an urgency for the one or more work queues includes determining a Contention, Contention being a number of SPUs used to process work forming a part of the work queue, for the one or more work queues and determining a Minimum Contention for the one or more work queues and wherein the assigning step comprises determining whether the contention of a work queue is greater than zero but less than the corresponding Minimum Contention and, if so, assigning that work queue over other work queues having equal priority with that work queue but for which the contention of the other work queues is not greater than zero or not less than the corresponding Minimum Contention; loading a policy module from main memory for the selected one or more work queues to the selected one or more SPUs, a policy module being a manager object on an SPU for processing work queues, wherein each policy module is operable to manage its own context data, being data representing a current state of that SPU; under control of the policy module, loading work from one or more of the selected one or more work queues into the local memory of the selected SPU; performing the work with the selected SPU; and after completing the work or upon a pre-emption, returning control of the selected SPU to the SPMM.