Patent ID: 8448156

Claim:
A computer-implemented method configured to be performed by a runtime system at a parallel-processing computer system that includes multiple types of processing elements, comprising: at runtime: receiving one or more operation requests issued by an application, wherein the one or more operation requests correspond to a code reuse section of the application; generating one or more intermediate representation entries for the one or more operation requests; dynamically choosing a respective type of processing element for the one or more intermediate representation entries; dynamically preparing one or more compute kernels for the one or more intermediate representation entries by compiling the one or more intermediate representation entries for execution on the dynamically chosen type of processing element; storing, for later execution, the one or more compute kernels in association with an identifier; and executing the one or more compute kernels at the dynamically chosen processing element, wherein the multiple types of processing elements include two or more of: single-core central processing units, multi-core central processing units, graphics processing units, single-core co-processors and multi-core co-processors.