This is an interface that defines the operations available on a
Backend
implementation. Backend implementations and the
Context
class must implement this interface.
See also
Backend
, SyncBackend
, AsyncBackend
,
and Context
.
Methods
Method start()
Start the backend.
Arguments
specification
An object of class
Specification
that contains the backend configuration.
Returns
This method returns void. The resulting backend must be stored in the
.cluster
private field on the Backend
abstract class,
and accessible to any concrete backend implementations via the active
binding cluster
.
Method clear()
Remove all objects from the backend. This function is equivalent to
calling rm(list = ls(all.names = TRUE))
on each node in the
backend.
Method peek()
Inspect the backend for variables available in the .GlobalEnv
.
Method export()
Export variables from a given environment to the backend.
Method evaluate()
Evaluate an arbitrary expression on the backend.
Method sapply()
Run a task on the backend akin to parallel::parSapply()
.
Arguments
x
An atomic vector or list to pass to the
fun
function.fun
A function to apply to each element of
x
....
Additional arguments to pass to the
fun
function.
Returns
This method returns void. The output of the task execution must be
stored in the private field .output
on the Backend
abstract class, and is accessible via the get_output()
method.
Method lapply()
Run a task on the backend akin to parallel::parLapply()
.
Arguments
x
An atomic vector or list to pass to the
fun
function.fun
A function to apply to each element of
x
....
Additional arguments to pass to the
fun
function.
Returns
This method returns void. The output of the task execution must be
stored in the private field .output
on the Backend
abstract class, and is accessible via the get_output()
method.
Method apply()
Run a task on the backend akin to parallel::parApply()
.
Arguments
x
An array to pass to the
fun
function.margin
A numeric vector indicating the dimensions of
x
thefun
function should be applied over. For example, for a matrix,margin = 1
indicates applyingfun
rows-wise,margin = 2
indicates applyingfun
columns-wise, andmargin = c(1, 2)
indicates applyingfun
element-wise. Named dimensions are also possible depending onx
. Seeparallel::parApply()
andbase::apply()
for more details.fun
A function to apply to
x
according to themargin
....
Additional arguments to pass to the
fun
function.
Returns
This method returns void. The output of the task execution must be
stored in the private field .output
on the Backend
abstract class, and is accessible via the get_output()
method.
Method get_output()
Get the output of the task execution.
Details
This method fetches the output of the task execution after calling
the sapply()
method. It returns the output and immediately removes
it from the backend. Therefore, subsequent calls to this method are
not advised. This method should be called after the execution of a
task.
Returns
A vector, matrix, or list of the same length as x
, containing the
results of the fun
. The output format differs based on the specific
operation employed. Check out the documentation for the apply
operations of parallel::parallel
for more information.