1. A computer-implemented method for dispatching a function call, the method comprising: making, by an origin processing element (PE) of an origin device, during execution of a program by the origin device, a function call to a function to be performed by a target device other than the origin device; storing, by the origin PE, on a stack frame of the origin PE, one or more parameters of the function call; receiving, at a supervisor processing element (PE) and from an origin PE, an identifier of the target device, the stack frame of the origin PE, and an address of the function called from the origin PE; allocating, by the supervisor PE, a target PE of the target device; copying, by the supervisor PE, the stack frame of the origin PE to a new stack frame on a call stack of the target PE, wherein the origin PE and the target PE have distinct memory spaces from each other; instructing, by the supervisor PE, the target PE to execute the function at the address; receiving, by the supervisor PE, notification from the target PE that execution of the function is complete; copying, by the supervisor PE, the new stack frame on the call stack of the target PE to the stack frame of the origin PE; releasing, by the supervisor PE, the target PE of the target device; and instructing, by the supervisor PE, the origin PE to resume execution of the program.