Patent ID: 9158584
Filing Date: 2015-10-13
Classification: G06F

Abstract:
1. A method for distributing sequential execution of a computer program to a plurality of hardware architectures of different types, the method comprising: analyzing the computer program to identify a plurality of execution boundaries, wherein there is an execution boundary when the computer program transfers execution control to a library, and when execution control is transferred back to the computer program; selecting one or more execution boundaries from the plurality of execution boundaries, based on predetermined parameters; linking the computer program to the selected one or more execution boundaries; executing the computer program with linked execution boundaries in an originating hardware architecture; saving a hardware agnostic state of the execution of the computer program at a first execution stop point in the computer program, when the execution encounters a boundary from the selected one or more execution boundaries; transmitting the hardware agnostic state to a remote hardware architecture to be executed on the remote hardware architecture, responsive to the hardware agnostic state; and sequentially executing the computer program starting from the first execution stop point, by the remote hardware architecture, wherein the computer program is executed by a single hardware architecture at any point of time, during its execution.