-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
Description
Triggered by #96, could we automatically detect what rscript_sh should be for remote workers? Right now it is hard-coded to rscript_sh = "sh" for remote workers based on the assumption that most clusters run on Unix-like systems.
Idea
At least when homogeneous = FALSE, we could query the remote operating system using something like:
$ '/usr/bin/ssh' pi-2021.local Rscript --vanilla -e .Platform | grep -A 1 -F OS.type
$OS.type
[1] "unix"So, in R, something like:
## Set rscript_sh = "cmd", if remote machine runs MS Windows
rscript_sh <- "sh"
tryCatch({
res <- system2(ssh_cmd, args = c(hostname, "Rscript", "--vanilla", "-e", ".Platform"), stdout = TRUE, stderr = TRUE)
idx <- grep("OS.type", res)
if (length(idx) == 0) return()
if (any(grepl("windows", res[idx+1]))) rscript_sh <- "cmd"
}, error = identity)The downside is that this adds to the startup time of each parallel worker (in the order of seconds)
Reactions are currently unavailable