Next: , Previous: , Up: Functions for parallel execution over a cluster of machines   [Index]


3.11 Single remote function evaluation

Function File: rfeval (func, …, nout, isout, connection)

Evaluate a function at a remote machine.

func is evaluated with arguments and number of output arguments set to nout at remote machine given by connection. If isout is not empty, it must be a logical array with nout elements, which are true for each of the nout output arguments which are requested from the function; the other output arguments will be marked as not requested with ~ at remote execution.

This function can only be successfully called at the client machine. See pconnect for a description of the connection variable. connection must contain one single connection.

If an output argument is given to rfeval, the function waits for completion of the remote function call, retrieves the results and returns them. They will be returned as one cell-array with an entry for each output argument. If some output arguments are marked as not requested by setting some elements of isout to false, the returned cell-array will only have entries for the requested output arguments. For consistency, the returned cell-array can be empty. To assign the output arguments to single variables, you can for example use: [a, b, c] = returned_cell_array{:};.

If no output argument is given to rfeval, the function does not retrieve the results of the remote function call but returns immediately. It is left to the user to retrieve the results with precv. The results will be in the same format as if returned by rfeval. Note that a cell-array, possibly empty, will always have to be retrieved, even if the remote function call should have been performed without output arguments.

Parallel execution can be achieved by calling rfeval several times with different specified server machines before starting to retrieve the results.

The specified function handle can refer to a function present at the executing machine or be an anonymous function. See parallel_doc ("limitations") for possible limitations.


Next: Sending Octave variables, Previous: Distribute Octave variables, Up: Functions for parallel execution over a cluster of machines   [Index]