The library lets a user make asynchronous function calls in GNU Octave.
The existing Parallel Package allows parallel function calls in the following way:
output_vector = pararrayfun(n_cores, @myfunc, input_vector)
But the call to pararrayfun
itself is still synchronous.
This library is supposed to be used in a similar way as asynchronous calls are used in Python and C#:
pid = parstart("myfunc", argin1, argin2, ...)
This call returns quickly and the user can do other jobs.
The current status of the mufunc
call can be checked by running(pid)
When the function has completed, running(pid) == 0
and the output parameters from myfunc
(if any) should be obtained by calling
d = get_data(pid)
The parameters will be packed in a structure d
.
An empty array is returned if
(a) myfunc
has no output parameters, or
(b) myfunc
has not completed (an error has occured)
This is why it is recommended to add an exit code as an output parameter if myfunc
is "void".
As a side note, Windows OS supports many CPUs and will distribute the load from several parstart
calls in more or less optimal way.
See also:
[API reference]
[System requirements]