Multi-computer makePSOCKcluster для Windows: построение пошагового руководства

Я пытаюсь создать кластер с использованием нескольких компьютеров в течение трех дней и неэффективно. Так что теперь я собираюсь попытаться сосать кучу вас в решении моей проблемы для меня. Если все будет хорошо, я надеюсь, что мы сможем создать пошаговое руководство для использования в качестве ссылки для этого в будущем, потому что до сих пор мне не удалось найти достойную ссылку для настройки этого ( возможно, это слишком конкретная задача?)

В моем случае допустим, что Windows 7 с PuTTY является клиентом SSH, а "localhost" будет служить мастером.

Кроме того, предположим, что на данный момент допустимы только два компьютера в одной сети. Я предполагаю, что процесс будет достаточно обобщен, чтобы, если я могу заставить его работать на двух компьютерах, я могу заставить его работать над тремя. Поэтому мы будем работать с localhost и remote-computer.

Вот что я собрал до сих пор (со ссылками, связанными внизу)

  • Установите PuTTY на localhost.
  • Установите PuTTY на remote-computer
  • Установите SSH-сервер на remote-computer
  • Назначить порт для прослушивания? (Я не уверен в этом шаге)
  • Установить R на localhost
  • Установите ту же версию R на remote-computer
  • Добавьте R в переменную среды PATH как на localhost, так и на remote-computer
  • Запустите код R ниже localhost

код:

library(parallel)
cl <- makePSOCKcluster(c(rep("localhost", 2),
                         rep("remote-computer", 2)))

До сих пор я делал шаги 1-3, не уверен, что мне нужно сделать 4, сделано 5-7, а код для шага 8 просто зависает бесконечно.

Когда я проверяю журналы своего SSH-сервера, не появляется, что я нажимаю сервер SSH с localhost. Таким образом, моя первая проблема заключается в правильной настройке SSH. Кто-нибудь преуспел в этом, и согласны ли вы поделиться своим опытом?

ИЗМЕНИТЬ К сожалению, ссылки http://www.milanor.net/blog/wp-content/uploads/2013/10/03.FirstStepinParallelComputing.pdf

R Параллельно - подключение к удаленным ядрам

https://stat.ethz.ch/pipermail/r-sig-hpc/2010-October/000780.html

Ответ 1

В лучшем случае это частичный ответ. Я все еще не создаю кластер, но описанные здесь шаги - довольно хороший отчет о том, как я дошел до этого момента.

КОНФИГУРАЦИЯ:

  • Установите PuTTY на "удаленный компьютер"
  • Установить SSH-сервер на удаленном компьютере
  • Установите R на "удаленный компьютер" (используйте ту же версию R, что и на "localhost" )
  • Добавить R в PATH

  • Установите PuTTY на 'localhost'

  • Установить R на 'localhost'
  • Добавить R в PATH

ИСПЫТАНИЕ СОЕДИНЕНИЯ: ФАЗА I

  • В командной строке запустите

C:\PuTTYPath\plink.exe -pw [password] [username]@[remote_ip_address] Rscript -e rnorm(100)

(Подтвердите возврат 100 нормальных случайных вариаций

  1. В командной строке запустите

C:\PuTTYPath\plink.exe -pw [password] [username]@[remoate_ip_address] RScript -e parallel:::.slaveRSOCK() MASTER=[local_ip_address] PORT=100501 OUT=/dev/null TIMEOUT=2592000 METHODS=TRUE XDR=TRUE

(Убедитесь, что сеанс запущен в журналах сервера SSH на удаленном компьютере)

ИСПЫТАНИЕ СОЕДИНЕНИЯ: ФАЗА II

  • В сеансе R запустите

    system(paste0("C:/PuTTYPath/plink.exe -pw [password] ", "[username]@[remote_ip_address] ", "RScript -e rnorm(100)"))

    (Подтвердите возврат 100 нормальных случайных вариаций)

  • В сеансе R запустите

    system(paste0("C:/PuTTY/plink.exe ", "-pw [password] ", "[username]@[remote_ip_address] ", "RScript -e parallel:::.slaveRSOCK() ", "MASTER=[local_ip_address] ", "PORT=100501 ", "OUT=/dev/null ", "TIMEOUT=2592000 ", "METHODS=TRUE ", "XDR=TRUE"))

(Убедитесь, что сеанс запущен и поддерживается в журналах сервера SSH на "удаленном компьютере"

УСТАНОВИТЬ КЛАСТЕР

  • В сеансе R запустите

    library(snow) cl <- makeCluster(spec = c("localhost", "[remote_ip_address]"), rshcmd = "C:/PuTTY/plink.exe -pw [password]", host = "[local_ip_address]")

(Сеанс должен запускаться и поддерживаться в журналах сервера SSH на "удаленном компьютере".  В идеале функция будет завершена при назначении "cl" )

Установление кластера - это тот момент, когда я терпит неудачу. Я запускаю makeCluster и просматриваю журналы своего SSH-сервера. Он показывает, что соединение выполнено, а затем сразу же закрыто. makeCluster никогда не заканчивается, cl не назначается, и я зациклился на том, как продолжить. Я даже не уверен, что это проблема R или проблема с конфигурацией на данный момент.

РЕДАКТИРОВАТЬ И РЕШЕНИЕ:

По уважительной причине я попытался запустить это с пакетом snow, как показано в разделе "Установить кластер" выше. Когда я использовал пакет snow, кластер построен и работает стабильно. Не знаю, почему я не мог заставить это работать с пакетом parallel, но, по крайней мере, у меня есть что-то функциональное.