параллельный ipython / ipcluster через головной узел - PullRequest
1 голос
/ 04 марта 2011

Я хочу использовать параллельные возможности ipython на кластере удаленных компьютеров. Только головной узел доступен снаружи. Я настроил ssh-ключи, чтобы я мог подключиться к головному узлу, например, с помощью ssh head и оттуда я могу также войти в любой узел без ввода пароля, например ssh node3. Таким образом, я могу выполнить любые команды на узлах, выполнив:

ssh head ssh node3 command

Теперь я действительно хочу иметь возможность запускать задания в кластере со своего компьютера из ipython. Способ настроить хосты для использования в ipcluster:

send_furl = True
engines = { 'host1.example.com' : 2,
            'host2.example.com' : 5,
            'host3.example.com' : 1,
            'host4.example.com' : 8 }

Но так как у меня есть только имя хоста для головного узла, я не думаю, что смогу это сделать. Один из вариантов - установить для нас ssh-туннелирование на головном узле, но я не могу сделать это в моем случае, так как для этого необходимо открыть достаточно портов для размещения всех узлов (а это не так). Есть ли альтернативы?

Ответы [ 2 ]

1 голос
/ 05 марта 2011

Я использую ipcluster в кластерах NERSC, используя очередь PBS:

http://ipython.org/ipython-doc/stable/parallel/parallel_process.html#using-ipcluster-in-pbs-mode

в итоге вы отправляете задания, которые запускают mpiexec ipengine (после запуска ipcontroller на узле входа в систему). Есть ли у вас PBS в вашем кластере?

это работало нормально с ipython .10, теперь оно сломано в .11 альфа.

0 голосов
/ 15 мая 2013

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

Вы могли бы установить VPN через SSH (как вы упомянули "ssh tunneling");другие варианты: OpenVPN и IPsec .

Я не понимаю, что вы подразумеваете под "для этого требуется достаточное количество открытых портов для размещения всех узлов".Вам потребуется: (i) один входящий порт на главном сервере для обеспечения VPN / туннеля, (ii) входящий SSH на каждом ведомом устройстве, доступный с главного устройства, (iii) другой входящий порт на каждом ведомом устройстве, через который ведущий диск ведетдвижки IPython.Разве (ii) и (iii) не потребуется в какой-либо установке?Итак, все, что мы добавили, это (я).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...