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{
## DEPRECATED: 'remote' is deprecated in favor of 'cluster' with
## persistent = TRUE. Note however, that argument 'persistent'
## will eventually be deprecated too when there is an alternative
## for users and developers to handle "sticky" globals
## Use a remote machine
plan(cluster, workers = "remote.server.org", persistent = TRUE)
## Evaluate expression remotely
host %<-% { Sys.info()[["nodename"]] }
host
[1] "remote.server.org"
## The following setups are equivalent:
plan(remote, workers = "localhost") ## DEPRECATED in future (>= 1.24.0)
plan(cluster, workers = "localhost", persistent = TRUE)
plan(cluster, workers = 1, persistent = TRUE)
## The following setups are equivalent:
plan(remote, workers = "remote.server.org") ## DEPRECATED in future (>= 1.24.0)
plan(cluster, workers = "remote.server.org", persistent = TRUE, homogeneous = FALSE)
## The following setups are equivalent:
cl <- makeClusterPSOCK("remote.server.org")
plan(remote, workers = cl) ## DEPRECATED in future (>= 1.24.0)
plan(cluster, workers = cl, persistent = TRUE)
}
## End(Not run)