Patent ID: 8707016

Claim:
A method of retrieving data for use when executing a process thread, the method comprising: creating a set of helper thread binaries from a set of main thread binaries; partitioning the set of main thread binaries into multiple main thread partitions; partitioning the set of helper thread binaries into multiple helper thread partitions, wherein each partition in the multiple helper thread partitions begins at a same instruction found in a corresponding partition in the multiple main thread partitions; executing a first main partition from the multiple main thread partitions in a first core of a multi-core computer system; executing a second helper partition from the multiple helper thread partitions in a second core of the multi-core computer system; in response to the first main partition completing execution, executing a second main partition from the multiple main thread partitions in the second core, wherein the second main partition utilizes data that has been retrieved during execution of at least part of the second helper partition in the second core; a processor determining an effectiveness of the set of helper thread binaries by: executing the set of main thread binaries using the set of helper thread binaries; executing the set of main thread binaries without using the set of helper thread binaries; measuring a length of time required to execute the set of main thread binaries using the helper thread binaries and a length of time required to execute the set of main thread binaries without using the set of helper thread binaries, wherein the length of time required to execute the set of main thread binaries using the set of helper thread binaries also includes a time taken to context switch and a time taken commandeering resources from the second core; comparing the length of time required to execute the set of main thread binaries using the set of helper thread binaries and the length of time required to execute the set of main thread binaries without using the set of helper thread binaries; determining, based on the comparing, if executing the set of main thread binaries using the set of helper thread binaries took longer than executing the set of main thread binaries without using the set of helper thread binaries; and in response to determining that executing the set of main thread binaries using the set of helper thread binaries took longer than executing the set of main thread binaries without using the set of helper thread binaries, prohibiting a future use of all helper thread binaries when executing the set of main thread binaries for the process thread.