remote {future} | R Documentation |
A remote future is a future that uses remote cluster evaluation, which means that its value is computed and resolved remotely in another process.
remote( ..., workers = NULL, revtunnel = TRUE, myip = NULL, persistent = TRUE, homogeneous = TRUE, envir = parent.frame() )
... |
Additional named elements passed to |
workers |
A |
revtunnel |
If TRUE, reverse SSH tunneling is used for the PSOCK cluster nodes to connect back to the master R process. This avoids the hassle of firewalls, port forwarding and having to know the internal / public IP address of the master R session. |
myip |
The external IP address of this machine. If NULL, then it is inferred using an online service (default). |
persistent |
If FALSE, the evaluation environment is cleared from objects prior to the evaluation of the future. |
homogeneous |
If TRUE, all cluster nodes is assumed to use the
same path to ‘Rscript’ as the main R session. If FALSE, the
it is assumed to be on the PATH for each node.
If NULL, then |
envir |
The environment from where global objects should be identified. |
This function is not meant to be called directly. Instead, the typical usages are:
# Evaluate futures on remote machine 'server.example.org', and # any nested ones sequentially (default) on that remote machine plan(remote, workers = "server.example.org") # Evaluate futures on remote machine 'server.example.org', and # nested ones in parallel on that remote machine plan(list( tweak(remote, workers = "server.example.org"), multisession )) # Evaluate futures on remote machine 'server.example.org', and # nested ones in parallel on the remote machines n1, n2, and n3. plan(list( tweak(remote, workers = "server.example.org"), tweak(cluster, workers = c("n1", "n2", "n3")) ))
The remote
plan is a very similar to the cluster
plan, but provides
more convenient default argument values when connecting to remote machines. #' Specifically, remote
uses persistent = TRUE
by default, and it sets
homogeneous
, revtunnel
, and myip
"wisely" depending on the value of
workers
.
' See below for example on how remote
and cluster
are related.
## Not run: \donttest{ ## Use a remote machine plan(remote, workers = "remote.server.org") ## Evaluate expression remotely host %<-% { Sys.info()[["nodename"]] } host [1] "remote.server.org" ## The following setups are equivalent: plan(remote, workers = "localhost") plan(cluster, workers = "localhost", persistent = TRUE) plan(cluster, workers = 1, persistent = TRUE) plan(multisession, workers = 1, persistent = TRUE) ## The following setups are equivalent: plan(remote, workers = "remote.server.org") plan(cluster, workers = "remote.server.org", persistent = TRUE, homogeneous = FALSE) ## The following setups are equivalent: cl <- makeClusterPSOCK("remote.server.org") plan(remote, workers = cl) plan(cluster, workers = cl, persistent = TRUE) } ## End(Not run)