Patent ID: 8381202

Claim:
A computer-implemented method, comprising: at a parallel-processing computer system that includes two or more processing elements including a first processing element of a first architecture and a second processing element of a second architecture different from the first architecture: at the first processing element: receiving one or more compute kernels, wherein the one or more compute kernels are configured to execute on the two or more processing elements; and dynamically arranging for execution of at least one of the one or more compute kernels on at least one of the two or more processing elements in response to or in anticipation of a request for a result associated with the at least one of the one or more compute kernels, further comprising: arranging the execution of the at least one of the one or more compute kernels on the second processing element after receiving the request for a result associated with the at least one of the one or more compute kernels; and receiving a callback function from the second processing element, wherein the call back function includes a completion signal before a completion of executing the at least one of the one or more compute kernels on the second processing element; after determining that the second processing element is unavailable for executing the at least one of the one or more compute kernels: identifying another compute kernel among the one or more compute kernels, wherein the another compute kernel is an equivalent version of the at least one of the one or more compute kernels prepared for the first compute kernel; and arranging the execution of the another compute kernel on the first processing element.