Patent ID: 7694306

Claim:
An information handling system comprising: a plurality of heterogeneous processors, each of the heterogeneous processors corresponding to one of a plurality of heterogeneous processor types; a memory accessible by the heterogeneous processors; one or more nonvolatile storage devices accessible by the heterogeneous processors; and a code execution load balancing tool for load balancing code execution, the code execution load balancing tool comprising software code effective to: compile a first source code subtask and a second source code subtask, the compiling resulting in a first byte code subtask and a second byte code subtask; determine whether to store a pointer in a byte code file, the pointer including a stored location that corresponds to the second byte code subtask; store the pointer in the byte code file in response to the determination; store the second byte code subtask at the stored location in response to the determination; translate the first byte code subtask to a first object code subtask; execute the first object code subtask using one of the plurality of heterogeneous processors; during the execution of the first object code subtask, the software code being further effective to: retrieve the pointer and analyze the stored location; in response to analyzing the stored location, retrieve the second byte code subtask using a runtime loader; in response to retrieving the second byte code subtask, use the runtime loader to identify a selected processor type from the plurality of heterogeneous processor types in which to execute the second byte code subtask, wherein the identifying includes software code effective to retrieve a loading factor for each of the plurality of heterogeneous processor types and determine an availability of each of the plurality of heterogeneous processor types using the loading factors; in response to identifying the selected processor type, use the runtime loader to translate the second byte code subtask to a second object code subtask; and load the second object code subtask into a second processor, selected from the plurality of heterogeneous processors, that corresponds to the selected processor type.