Claims
- 1. In a digital data processing system of the type having
a plurality of execution resources, including a central processing unit (CPU) and one or more further execution resources, the improvement comprising a process executing on the central processing unit, the process selecting one or more portions of an application and effecting their execution on one or more of the further execution resources, the process effecting execution of remaining portions of the application on the CPU.
- 2. In a digital data processing system according to claim 1, the further improvement wherein the execution resources include any of co-processors, accelerators, controllers.
- 3. In a digital data processing system according to claim 2, the further improvement wherein the further execution resources include any fast Fourier transform devices, image reconstruction and synthetic aperture radar algorithms.
- 4. In a digital data processing system according to claim 2, wherein the further execution resources are disposed any of locally and remotely with respect to the CPU
- 5. In a digital data processing system according to claim 5, the further improvement wherein the process causes the one or more further execution resources to perform functions that would otherwise be performed by the CPU executing the corresponding selected portions of the application.
- 6. In a digital data processing system of claim 1, the further improvement comprising a store that identifies the further execution resources.
- 7. In a digital data processing system of claim 1, the further improvement wherein the store identifies, for each execution resource, its type, its interface and its configuration.
- 8. In the digital data processing system of claim 4, the further improvement wherein the process selects portions of the application for execution on the further execution resources as a function of at least a type of a further execution resources identified by the store.
- 9. In the digital data processing system of claim 8, the further improvement wherein the process selects a portion of the application for execution on the further execution resources as function of a correspondence between a functional requirement of that portion and types of the further execution resources.
- 10. In the digital data processing system of claim 1, the further improvement wherein the process selects the one or more sections of the application at substantially the same time that those sections are executed on the further execution resources.
- 11. A digital data processing system, comprising
a central processing unit (CPU) executing a process, one or more accelerated hardware resources in communication coupling with the process, the hardware resources being located any of remotely and locally with respect to the CPU, a store that identifies at least the accelerated hardware resources, along with at least their types, the process, coupled to the store, dynamically selects one or more portions of an application for execution on one or more of the accelerated hardware resources, and that effects execution of such portions on such resources, the process selecting such portions as a function of at least the accelerated hardware resource type identified in the store, the process effecting execution of remaining portions of the application on the CPU, and combining results of those remaining portions with results of execution of the aforesaid portions on the accelerated hardware.
- 12. In a digital data processing system of the type having
a plurality of execution resources, including a central processing unit (CPU) and one or more further execution resources, the improvement comprising a framework, in communications coupling with the process and with the one or more further execution resources, a process executing on the central processing unit, the process (i) invoking a proxy in place of each of one or more portions of an application, and (ii) executing remaining portions of the application on the CPU, the framework responding to the invoked proxies to perform functions on the further execution resources in lieu of those which would otherwise be performed by the CPU executing corresponding portions of the application in place of which those proxies were invoked.
- 13. In the digital data processing system of claim 12, the further improvement comprising
a first store comprising a functional characterization and at least one configuration characterization of each of the further execution resources, and wherein the process selecting for invocation of a proxy in place of one or more portions of the application comprising functions that match the functional characterizations contained within the first store.
- 14. In the digital data processing system of claim 13, the further improvement wherein the process generates each proxy with an identifier of the functional characterization of the one or more respective portions of the application in place of which it is invoked.
- 15. In the digital data processing system of claim 14, the further improvement wherein the process generates each proxy with an identifier of a configuration of a further execution resource to be used to perform functions that would be performed by the CPU executing the corresponding one or more portions of the application in place of which the proxy is invoked.
- 16. In the digital data processing system of claim 15, the further improvement comprising
one or more further stores, each associated with one or more further execution resources, each further store comprising a functional description and at least one configuration description of the associated further execution resources, the framework selecting for allocation one or more further resources based on a match between the functional description and configuration description in the associated further store and the functional characterization and configuration characterization identified in the proxy.
- 17. In the digital data processing system of claim 16, the further improvement wherein the framework configures the allocated further execution resources in accordance with the configuration description.
- 18. In the digital data processing system of claim 17, the further improvement wherein the process generates each proxy with data based on that which would be processed by the one or more respective portions of the application in place of which the proxy is invoked.
- 19. In the digital data processing system of claim 18, the further improvement wherein the framework applies the data from the proxy to one or more further execution resources in connection with invoking those resources to perform functions which would otherwise be performed by the CPU executing the corresponding one or more portions of the application.
- 20. In the digital data processing system of claim 19, the further improvement wherein the framework applies data generated by a further execution resource to one or more further such execution resources.
- 21. In the digital data processing system of claim 18, the further improvement wherein the framework stores to a proxy data generated by a further execution resource which performed functions that would be performed by the CPU executing the one or more portions of the application in place of which that or another proxy was invoked.
- 22. In the digital data processing system of claim 21, the further improvement wherein the process utilizes data contained in the proxy in connection with executing the remaining portions of the application on the CPU.
- 23. In a digital data processing system of the type having
a plurality of execution resources, including a central processing unit (CPU) and one or more further execution resources, the improvement comprising a framework, in communications coupling with the process and with the one or more further execution resources, a process executing on the central processing unit, the process (i) invoking a collection of proxy objects in place of a plurality of portions of an application, and (ii) executing remaining portions of the application on the CPU, where each proxy object corresponds to a respective portion of the application, the framework responding to invocation of the to the invoked collection to perform functions on the further execution resources in lieu of those which would otherwise be performed by the CPU executing corresponding portions of the application corresponding to the proxy objects in the collection in place of which those collections were invoked.
- 24. In the digital data processing system of claim 23, the further improvement wherein the process invokes the proxy objects within a collection substantially simultaneously as a job stream.
- 25. In the digital data processing system of claim 23, the further improvement wherein the process identifies adjacent proxy objects within a collection and establishes communications between those adjacent proxy objects in the collection.
- 26. A digital processing method of executing an application in a multi-execution resource environment comprising
selecting one or more portions of the application suitable for execution on one or more further execution resources, where those selections are made according to functional requirements of the respective portions and the functional capabilities of the further execution resources; executing the selected portions on one or more further execution resource capable of performing the functionality that would have been preformed by the CPU executing the application; executing the remaining portions of the application of the CPU.
- 27. In the digital processing method of claim 26, wherein the further execution resources include any of co-processors, accelerators, or controllers implemented in any of software, firmware or hardware or any combination.
- 28. In the digital processing method of claim 27, wherein the further execution resources include any Fast Fourier transform device, image reconstruction and synthetic aperture radar algorithms.
- 29. In the digital processing method of claim 27, wherein the further execution resources are disposed any of locally and remotely with respect to the CPU.
- 30. In the digital processing method of claim 29, the further step of performing the functionality that would otherwise be performed by the CPU executing the corresponding selected portions of the application.
- 31. In a digital processing method of claim 26, the further step of accessing a store comprising identification of the further execution resources.
- 32. In the digital processing method of claim 31, wherein the store identifies, for each execution resource, its type, its interface and its configuration.
- 33. In the digital processing method of claim 29, the further step of selecting portions of the application for execution on the further execution resources as a function of at least a type of a further execution resource identified by the store.
- 34. In the digital processing method of claim 33, the further step of selecting a portion of the application for execution on the further execution resources as a function of a correspondence between a functional requirement of that portion and types of the further execution resources.
- 35. In the digital processing method of claim 26, the further step of selecting the one or more sections of the application at substantially the same time that those sections are executed on the further execution resources.
- 36. A digital data processing method, comprising
executing a process on a central processing unit (CPU), identifying one or more further accelerated hardware resources that are in communication coupling with the process, the hardware resources being located any of remotely and locally with respect to the CPU, dynamically selecting one or more portions of an application for execution on one or more of the accelerated hardware resources, such selection being a function of at least types of respective accelerated hardware resource type identified in the store, with the process, effecting (i) execution of the selected portions of the application on one or more of the accelerated hardware resources, (ii) execution of remaining portions of the application on the CPU, (iii) combining results of those remaining portions with results of execution of the aforesaid portions on the accelerated hardware.
- 37. In a method of operating a digital data processing system of the type having
a plurality of execution resources, including a central processing unit (CPU) and one or more further execution resources, the improvement comprising with a process executing on the central processing unit, invoking a proxy in place of each of one or more portions of an application, responding to the invoked proxies to perform functions on the further execution resources in lieu of those which would otherwise be performed by the CPU executing corresponding portions of the application in place of which those proxies were invoked, and executing remaining portions of the application on the CPU and utilizing in connection therewith data generated in connection with performance of functions on the further execution resources.
- 38. In the method of claim 37, the further improvement comprising selecting for invocation a proxy in place of one or more portions of the application comprising functions that match the functional characterizations contained within a first store that comprises a functional characterization and at least one configuration characterization of each of the further execution resources.
- 39. In the method of claim 38, the further improvement comprising generating each proxy with an identifier of the functional characterization of the one or more respective portions of the application in place of which it is invoked.
- 40. In the digital data processing system of claim 39, the further improvement comprising generating each proxy with an identifier of a configuration of a further execution resource to be used to perform functions that would be performed by the CPU executing the corresponding one or more portions of the application in place of which the proxy is invoked.
- 41. In the method of claim 40, the further improvement comprising
selecting for allocation one or more further resources based on a match between the functional description and configuration description in an associated further store and the functional characterization and configuration characterization identified in the proxy.
- 42. In the method of claim 41, the further improvement comprising configuring an allocated further execution resources in accordance with a configuration description maintained in the associated further store.
- 43. In the method of claim 42, the further improvement comprising generating with each proxy with data based on that which would be processed by the one or more respective portions of the application in place of which the proxy is invoked.
- 44. In the digital data processing system of claim 43, the further improvement comprising data from the proxy to one or more further execution resources in connection with invoking those resources to perform functions which would otherwise be performed by the CPU executing the corresponding one or more portions of the application.
- 45. In the method of claim 44, the further improvement comprising applying data generated by a further execution resource to one or more further such execution resources.
- 46. In the digital data processing system of claim 43, the further improvement comprising storing to a proxy data generated by a further execution resource which performed functions that would be performed by the CPU executing the one or more portions of the application in place of which that or another proxy was invoked.
- 47. In the method of claim 46, the further improvement comprising utilizing data contained in the proxy in connection with executing the remaining portions of the application on the CPU.
- 48. In a method of operating a digital data processing system of the type having
a plurality of execution resources, including a central processing unit (CPU) and one or more further execution resources, the improvement comprising executing a process on a central processing unit, the process (i) invoking a collection of proxy objects in place of a plurality of portions of an application, and (ii) executing remaining portions of the application on the CPU, where each proxy object corresponds to a respective portion of the application, responding to invocation of the invoked collection to perform functions on the further execution resources in lieu of those which would otherwise be performed by the CPU executing corresponding portions of the application corresponding to the proxy objects in the collection in place of which those collections were invoked.
- 49. In the method of claim 48, the further improvement comprising invoking the proxy objects within a collection substantially simultaneously as a job stream.
- 50. In the method of claim 48, the further improvement comprising identifying adjacent proxy objects within a collection and establishes communications between those adjacent proxy objects in the collection.
BACKGROUND OF THE INVENTION
[0001] This application claims benefit of priority under of U.S. provisional application Serial No. 60/275,204 filed Mar. 12, 2001, the teachings of which arc incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60275204 |
Mar 2001 |
US |