Prioritized co-processor resource manager and method
First Claim
1. A computer system, comprising:
- a host processor executing a plurality of applications;
a slave processor having a plurality of resources for performing operations requested by the applications, the slave processor having a multi-tasking operating system for controlling execution of a group of tasks loaded on the slave processor by the host processor; and
a slave processor resource manager in communication with the applications to receive requests from the applications to perform operations at associated priority rankings in a priority order using the slave processor, the operations being implemented in groups of one or more nodes, the nodes comprising tasks executable on the slave processor, the nodes being associated with resource requirements, and the slave processor resource manager being operative to allocate resources of the slave processor to perform the requested operations according to the priority ranking associated with the requested operations and resource requirements of the nodes implementing the operations, the allocation of resources by the slave processor resource manager controlling the nodes of which of the requested operations are loaded to execute on the slave processor.
2 Assignments
0 Petitions
Accused Products
Abstract
A co-processor resource manager allocates resources of a co-processor platform to nodes implementing operations requested by applications running on a host processor according to a user-modifiable prioritization of the operations. Lower priority nodes can be evicted by the manager to resolve resource conflicts for newly requested operations. The manager utilizes a query test for the platform driver or client to override eviction or prevent eviction by downgrading an operation'"'"'s resource usage. A platform driver tracks resource usage of nodes, and classifies resources as singly allocatable or countable types to maintain co-processor resource manager independence from the co-processor platform.
438 Citations
21 Claims
-
1. A computer system, comprising:
-
a host processor executing a plurality of applications; a slave processor having a plurality of resources for performing operations requested by the applications, the slave processor having a multi-tasking operating system for controlling execution of a group of tasks loaded on the slave processor by the host processor; and a slave processor resource manager in communication with the applications to receive requests from the applications to perform operations at associated priority rankings in a priority order using the slave processor, the operations being implemented in groups of one or more nodes, the nodes comprising tasks executable on the slave processor, the nodes being associated with resource requirements, and the slave processor resource manager being operative to allocate resources of the slave processor to perform the requested operations according to the priority ranking associated with the requested operations and resource requirements of the nodes implementing the operations, the allocation of resources by the slave processor resource manager controlling the nodes of which of the requested operations are loaded to execute on the slave processor. - View Dependent Claims (2, 3, 4)
-
-
5. A manager of co-processor resources for a computer system having a host processor and one or more slave co-processors, comprising:
-
a multi-tasking host operating system for controlling execution of a plurality of application threads on the host processor; a co-processing platform driver for controlling loading of any of a plurality of nodes implementing various operations to execute on the one or more slave co-processors, the nodes utilizing resources of the slave co-processors and comprising tasks executable on the slave co-processors; a plurality of device drivers having services callable through application programming interfaces by the application threads for requesting operations performable on the co-processing platform driver, the device drivers associating the operations with a plurality of service classes ranked in order of priority; and a co-processor resource manager in communication with the device drivers and co-processing platform driver and operative to allocate resources of the one or more slave co-processors to the nodes which implement the operations requested of the device drivers by the application threads to thereby control which of the nodes are loaded by the co-processing platform driver to execute on the slave co-processors, the nodes being assigned the priority associated with the operations that they respectively implement; and the co-processor resource manager being operative when resource allocation requirements of a node for a requested operation cannot be met from any available resources not yet allocated to nodes currently executing on the one or more slave co-processors, to terminate one or more currently executing nodes which can be evicted, which have a lower priority than the node for the requested operation, and which collectively have been allocated sufficient resources that added to the available resources meet the allocation requirements of the node for the requested operation, so that the co-processor resource manager can thereafter allocate resources sufficient to fulfill the allocation requirements to the node for the requested operation, the terminated nodes being unloaded from executing on the slave co-processors. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A method for management of co-processor resources in a multi-tasking operating system for a computer having a host processor and a co-processor platform, the co-processor platform having a plurality of co-processor resources for performing operations, the method comprising:
-
ranking a plurality of service classes in order of priority; executing a plurality of applications on the host processor, the applications requesting operations in one or more of the service classes, the operations being performable on the co-processor platform; responsive to each request of an application to perform one of the operations, allocating co-processor resources to load a group of one or more nodes implementing the requested operation for execution on the co-processor according to the priority ranking of the service class to which the requested operation belongs. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. In a computer system having a host processor for executing a plurality of applications and a co-processor for performing operations requested by the applications in association with service classes, the co-processor having a plurality of resources for performing the operations, a co-processor resource manager comprising:
-
a node library for associating resource requirements to nodes, the nodes comprising tasks executable on the co-processor; a service class ranking user interface for ordering service classes responsive to user input in a user-selected priority ranking; a resource allocator for allocating co-processor resources to a group of one or more nodes implementing the requested operations according to the priority ranking of the service class to which the requested operations belong; and a host-based co-processor task loader for loading tasks to execute on the co-processor responsive to the resource allocator allocating sufficient co-processor resources to meet the resource requirements of the node, whereby the allocation of co-processor resources according to the priority ranking controls which of the nodes are loaded to execute on the co-processor.
-
Specification