Как запустить задание на нескольких машинах с Ubuntu в качестве операционной системы

Мне нужно выполнить задание на нескольких виртуальных машинах, существующих в определенном облаке, и у меня есть IP-адрес для всех из них, и я настроил имя хоста для всех них. Как запустить команду в сети виртуальной машины? обратите внимание, что сценарий этого задания разделяет задание на 4 шага для параллельного выполнения, поскольку для каждого шага требуется 2 потока, которые выполняются параллельно на одном компьютере, теперь мне нужно использовать более одного компьютера для запуска одного и того же сценария, в котором потоки для выполнения параллелизма, используя все эти машины с помощью этой команды:

./script.py '100 digits number' slaves.hostnames=hostname1,hostname2,hostname3 --slaves 4 --client-threads 2

Вышеуказанное число - это число, которое мне нужно учитывать, используя все эти машины, чтобы уменьшить общее время выполнения.

1 ответ

Есть несколько инструментов для создания своего рода "параллельного ssh". Как вы используете Python, pssh все должно быть в порядке. Установите его с pip:

$ sudo pip install pssh  

Создайте файл pssh hosts следующим образом:

192.168.0.10:22
192.168.0.11:22

и затем вызвать:

$ pssh -h pssh-hosts -l root -A echo "Hi!"

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

Узнать больше:

http://www.tecmint.com/execute-commands-on-multiple-linux-servers-using-pssh/

Одно важное замечание: если вы хотите решить проблему параллельно, вам может понадобиться MPI (Message Passing Interface). Я предлагаю MPICH. MPI предоставляет стандартные средства связи для совместного решения проблемы с несколькими компьютерами параллельно. Хотя написание быстрых приложений для поиска простых чисел / факторов не является чем-то новым.

Если у вас многоядерный компьютер, используйте многопоточность. Но если вы собираетесь использовать несколько компьютеров, вам понадобится MPI.

Другие вопросы по тегам