Error with future::plan(future::cluster, workers = c('rey', 'r2d2'))
#617
-
future::plan(future::cluster, workers = c('rey', 'r2d2'))
and it hangs and I have to stop the process. Session information > sessionInfo()
R version 4.1.2 (2021-11-01)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Arch Linux
Matrix products: default
BLAS: /usr/lib/libopenblasp-r0.3.18.so
LAPACK: /usr/lib/liblapack.so.3.10.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] daeqtlr_0.1.0
loaded via a namespace (and not attached):
[1] compiler_4.1.2 parallelly_1.31.1 magrittr_2.0.1 cli_3.3.0 parallel_4.1.2 tools_4.1.2
[7] future.apply_1.9.0 listenv_0.8.0 codetools_0.2-18 data.table_1.14.2 digest_0.6.28 globals_0.14.0
[13] rlang_1.0.2 future_1.25.0 > future::futureSessionInfo()
*** Package versions
future 1.25.0, parallelly 1.31.1, parallel 4.1.2, globals 0.14.0, listenv 0.8.0
*** Allocations
availableCores():
system nproc
6 6
availableWorkers():
$system
[1] "localhost" "localhost" "localhost" "localhost" "localhost" "localhost"
*** Settings
- future.plan=<not set>
- future.fork.multithreading.enable=<not set>
- future.globals.maxSize=<not set>
- future.globals.onReference=<not set>
- future.resolve.recursive=<not set>
- future.rng.onMisuse=<not set>
- future.wait.timeout=<not set>
- future.wait.interval=<not set>
- future.wait.alpha=<not set>
- future.startup.script=<not set>
*** Backends
Number of workers: 2
List of future strategies:
1. cluster:
- args: function (..., workers = c("rey", "r2d2"), envir = parent.frame())
- tweaked: TRUE
- call: future::plan(future::cluster, workers = c("rey", "r2d2"))
*** Basic tests
fish: Unknown command: /usr/lib64/R/bin/Rscript
fish:
'/usr/lib64/R/bin/Rscript' --default-packages=datasets,utils,grDevices,graphics,stats,methods -e 'options(socketOptions = "no-delay")' -e 'workRSOCK <- tryCatch(parallel:::.workRSOCK, error=function(e) parallel:::.slaveRSOCK); workRSOCK()' MASTER=localhost PORT=11091 OUT=/dev/null TIMEOUT=2592000 XDR=FALSE SETUPTIMEOUT=120 SETUPSTRATEGY=sequential
^ also hangs here. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 8 replies
-
Using future::plan(future::cluster, workers = c('rey', 'r2d2'), homogeneous = FALSE) should work. ExplanationWhen using future::plan(future::cluster, workers = c('rey', 'r2d2')) the parallelly packages is used under the hood. It basically does the following: cl <- parallelly::makeClusterPSOCK(c('rey', 'r2d2'))
future::plan(future::cluster, workers = cl) Comment: If you call that, you'll get the same error in the first step. Now, the default is |
Beta Was this translation helpful? Give feedback.
Using
should work.
Explanation
When using
the parallelly packages is used under the hood. It basically does the following:
Comment: If you call that, you'll get the same error in the first step.
Now, the default is
homogeneous = NULL
, which will makemakeClusterPSOCK()
look at eachworkers
element to infer whether if that needshomogeneous = TRUE
orhomogeneous = FALSE
. In your case, they end becominghomogeneous = TRUE
, which you don't want, because your wor…