Итак, мне нужно представить интенсивные вычисления (глубокое обучение нейронной сети) крутящемуся кластеру, в котором время аренды вычисляется, и мне нужно обменивать несколько мегабайт больших поплавковых массивов каждые несколько минут между активными узлами, поскольку узлы должны работать с самой последней версией нейронной сети, чтобы хорошо ее тренировать.Обмен сообщениями между заданиями крутящего момента в кластере
Мне было интересно, если бы были какие-либо хорошие варианты связи, по крайней мере, чтобы сообщить каждой активной работе свои рабочие места сестер, чтобы он мог подключиться к ним с помощью tcp. Узлы не имеют доступа к Интернету, и у нас не может быть демонов, работающих на сервере отправки задания.
Единственные варианты, которые я вижу бы:
- некоторые передачи сообщений опцию Крутящий момент (я являюсь довольно нуб на крутящий момент)
- очень подвержен ошибкам вариант использования файлов для связи, которые Я ненавижу.
- способ запросить ips активных узлов с сервера.
Этот вопрос очень широк (и, вероятно, граничит с мнением)! Я думаю, вам стоит взглянуть на интерфейс передачи сообщений (MPI). Это стандартизированный способ связи в кластерах и очень хорошо поддерживается Torque. Он доступен для C/C++ и Fortran (и, возможно, других). Не нужно заново изобретать колесо. –
Традиционный MPI здесь не помогает. Ему нужна семантика connect-accept из TCP или MPI. – Jeff
Это возможно с помощью Open MPI. Вы должны запустить глобально доступный (поверх TCP/IP) сервер имен ('orte-server') или запустить« основное »задание и позволить его« mpiexec »действовать как таковой, а затем предоставить URI сервера имен для каждого экземпляра 'mpiexec'. Затем задания могут использовать 'MPI_Publish_name' /' MPI_Lookup_name' и 'MPI_Comm_connect', чтобы найти друг друга и установить связь. Крутящий момент не обеспечивает механизмы связи interjob или, по крайней мере, не раскрывает их в своем API. –