2015-06-16 6 views
1

Итак, мне нужно представить интенсивные вычисления (глубокое обучение нейронной сети) крутящемуся кластеру, в котором время аренды вычисляется, и мне нужно обменивать несколько мегабайт больших поплавковых массивов каждые несколько минут между активными узлами, поскольку узлы должны работать с самой последней версией нейронной сети, чтобы хорошо ее тренировать.Обмен сообщениями между заданиями крутящего момента в кластере

Мне было интересно, если бы были какие-либо хорошие варианты связи, по крайней мере, чтобы сообщить каждой активной работе свои рабочие места сестер, чтобы он мог подключиться к ним с помощью tcp. Узлы не имеют доступа к Интернету, и у нас не может быть демонов, работающих на сервере отправки задания.

Единственные варианты, которые я вижу бы:

  • некоторые передачи сообщений опцию Крутящий момент (я являюсь довольно нуб на крутящий момент)
  • очень подвержен ошибкам вариант использования файлов для связи, которые Я ненавижу.
  • способ запросить ips активных узлов с сервера.
+1

Этот вопрос очень широк (и, вероятно, граничит с мнением)! Я думаю, вам стоит взглянуть на интерфейс передачи сообщений (MPI). Это стандартизированный способ связи в кластерах и очень хорошо поддерживается Torque. Он доступен для C/C++ и Fortran (и, возможно, других). Не нужно заново изобретать колесо. –

+0

Традиционный MPI здесь не помогает. Ему нужна семантика connect-accept из TCP или MPI. – Jeff

+0

Это возможно с помощью Open MPI. Вы должны запустить глобально доступный (поверх TCP/IP) сервер имен ('orte-server') или запустить« основное »задание и позволить его« mpiexec »действовать как таковой, а затем предоставить URI сервера имен для каждого экземпляра 'mpiexec'. Затем задания могут использовать 'MPI_Publish_name' /' MPI_Lookup_name' и 'MPI_Comm_connect', чтобы найти друг друга и установить связь. Крутящий момент не обеспечивает механизмы связи interjob или, по крайней мере, не раскрывает их в своем API. –

ответ

0

Существует множество способов обмена информацией между узлами кластера в зависимости от архитектуры кластера. Torque - это менеджер ресурсов, поэтому, если задание отправляется в кластер с использованием пакетного сценария, есть несколько переменных среды, которые должны иметь возможность указывать имена хостов или IP-адреса узлов, используемых в задании.

Точный синтаксис для поиска IP-адресов и/или имен хостов будет зависеть от диспетчера планировщика/рабочей нагрузки, используемого с крутящим моментом в вашем кластере. У этой ссылки есть документация для менеджера рабочей нагрузки PBS Works.

Параллельная связь между узлами может быть достигнута различными способами и будет частично зависеть от оборудования, доступного в кластере. Использование MPI является одним из наиболее распространенных способов распараллеливания кода для использования в кластере, и многие реализации поддерживают несколько высокопроизводительных сетей/межсоединений, таких как Infiniband. Некоторые полезные введения в различные типы параллелизма можно найти here.

В качестве альтернативы MPI Remote Direct Memory Access (RDMA) можно использовать для передачи и доступа к информации между узлами. Если в кластере сетевые адаптеры Infiniband, просматривающие API IB-Verbs от поставщика, станут дополнительным вариантом для передачи данных между узлами.

 Смежные вопросы

  • Нет связанных вопросов^_^