Я одновременно запускаю разные сценарии R в пакетном режиме в кластере Linux, чтобы оценить модель в разных наборах данных (это также происходит, когда я запускаю ее на Mac). Сценарии точно такие же, за исключением набора данных, который они используют. Когда я это делаю, я получаю следующее сообщение.
Error in socketConnection("localhost", port = port, server = TRUE, blocking = TRUE, :
cannot open the connection
Calls: makePSOCKcluster -> newPSOCKnode -> socketConnection
In addition: Warning message:
In socketConnection("localhost", port = port, server = TRUE, blocking = TRUE, :
port 11426 cannot be opened
Вот воспроизводимый пример. Создайте два файла, tmp1.R и tmp2.R, и tmp.sh с содержимым:
Содержимое файлов tmp1.R и tmp2.R:
library(dclone)
l <- list(1:100,1:100,1:100,1:100)
cl <- makePSOCKcluster(4)
parLapply(cl, X=l, fun=function(x) {Sys.sleep(2); sum(x); })
stopCluster(cl)
Содержимое файла tmp.sh:
#!/bin/sh
R CMD BATCH tmp1.R &
R CMD BATCH tmp2.R &
Будет выполнен первый файл в списке. Второй представит ошибку выше. Кто-нибудь знает, как это решить и при этом запускать сразу все скрипты автоматически без какого-либо ручного вмешательства?
PS: я прочитал все другие подобные вопросы, ни у кого нет воспроизводимого примера или ответа на вопрос выше.