Abstract: A system for processing a user application having a plurality of functions identified for parallel execution. The system includes a client coupled to a plurality of compute engines. The client executes both the user application and a compute engine management module. Each of the compute engines is configured to execute a requested function of the plurality of functions in response to a compute request. If, during execution of the user application by the client, the compute engine management module detects a function call to one of the functions identified for parallel execution, and the module selects a compute engine and sends a compute request to the selected compute engine requesting that it execute the function called. The selected compute engine calculates a result of the requested function and sends the result to the compute engine management module, which receives the result and provides it to the user application.