System and method for dynamically partitioning processing across plurality of heterogeneous processors
First Claim
1. A computer-implemented method for loading objects in a heterogeneous multiprocessor computer system, said method comprising:
- identifying a processor to execute a software task, the identification based upon characteristics of the software task and computing resource availability;
loading software code corresponding to the identified processor into a shared memory, wherein the shared memory is shared by a plurality of dislike processors that includes the identified processor; and
executing the loaded code by the identified processor.
2 Assignments
0 Petitions
Accused Products
Abstract
A program is into at least two object files: one object file for each of the supported processor environments. During compilation, code characteristics, such as data locality, computational intensity, and data parallelism, are analyzed and recorded in the object file. During run time, the code characteristics are combined with runtime considerations, such as the current load on the processors and the size of the data being processed, to arrive at an overall value. The overall value is then used to determine which of the processors will be assigned the task. The values are assigned based on the characteristics of the various processors. For example, if one processor is better at handling intensive computations against large streams of data, programs that are highly computationally intensive and process large quantities of data are weighted in favor of that processor. The corresponding object is then loaded and executed on the assigned processor.
-
Citations
30 Claims
-
1. A computer-implemented method for loading objects in a heterogeneous multiprocessor computer system, said method comprising:
-
identifying a processor to execute a software task, the identification based upon characteristics of the software task and computing resource availability;
loading software code corresponding to the identified processor into a shared memory, wherein the shared memory is shared by a plurality of dislike processors that includes the identified processor; and
executing the loaded code by the identified processor. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. An information handling system comprising:
-
a plurality of heterogeneous processors;
a common memory shared by the plurality of heterogeneous processors;
a first processor selected from the plurality of processors that sends a request to a second processor, the second processor also being selected from the plurality of processors;
a local memory corresponding to the second processor;
a DMA controller associated with the second processor, the DMA controller adapted to transfer data between the common memory and the second processor'"'"'s local memory; and
a loading tool for loading software code to execute on one of the processors, the loading tool including software effective to;
identify one of the processors to execute a software task, the identification based upon characteristics of the software task and computing resource availability;
loading the software code corresponding to the identified processor into the common memory; and
executing the loaded code by the identified processor. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer program product stored on a computer operable media for loading objects in a heterogeneous multiprocessor computer system, said computer program product comprising:
-
means for identifying a processor to execute a software task, the identification based upon characteristics of the software task and computing resource availability;
means for loading software code corresponding to the identified processor into a shared memory, wherein the shared memory is shared by a plurality of dislike processors that includes the identified processor; and
means for executing the loaded code by the identified processor. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification