2016-12-21 6 views
1

Это относится к пакету h2o в R. Я работаю с несколькими заданиями, выполняющимися параллельно, некоторые из них могут появляться позже других. Можно ли определить, существует ли уже экземпляр h2o и установить соединение с этим экземпляром.обнаруживает, что экземпляр H2O уже запущен в R

Я вижу, что если я знаю, что экземпляр уже запущен, я просто делаю h2o.init(startH2O=FALSE), но что, если я этого не знаю?

ответ

2

Просто сделайте h2o.init(startH2O=FALSE), и если он не работает, вы знаете, что он не работает.

(В качестве альтернативы, вы можете сделать свой собственный запрос завитка к порту 54321, и посмотреть, если есть ответ.)

Когда вы говорите «несколько заданий работают параллельно», вы имеете в виду один экземпляр H2O, и он делает 2+ моделей одновременно? Или вы имеете в виду, что вы используете 2+ экземпляра H2O на одной машине на разных портах? Если последнее, укажите номер порта, интересующий ваш звонок h2o.init() (но убедитесь, что вы используете самую последнюю версию, port arg проигнорирован до 18 ноября 2016 года: https://github.com/h2oai/h2o-3/pull/401)

+0

Я бы хотел запустить два или более R скрипты одновременно и независимо, каждый из которых использует некоторые функции h2o, например чтение/запись набора данных на сервер и обратно, обучение двум отдельным, несвязанным моделям. Я знаю, что «startH2O = FALSE», но кажется странным, чтобы проверить, не выясняется, запущен ли экземпляр. Но вот. – horaceT

+1

@horaceT Для * that * use case я бы просто выполнил 'h2o.init()': первый запускаемый скрипт запустит H2O для вас, а второй будет автоматически использовать исполняемый экземпляр. (Чтобы быть точным 'h2o.init (nthreads = -1, max_mem_size =" 4g ")' и убедитесь, что ваши скрипты используют одну и ту же команду, а также запустите ее из командной строки заранее.) –