Мне нужно запустить задание на нескольких виртуальных машинах, существующих в определенном облаке, и у меня есть IP-адрес для всех из них, и я настроил имя хоста для всех из них. Как запустить команду в сети виртуальной машины? обратите внимание, что сценарий этого задания разделяет задание на 4 шага для параллельного выполнения, поскольку для каждого шага требуется 2 потока, которые выполняются параллельно на одном компьютере, теперь мне нужно использовать более одного компьютера для запуска одного и того же сценария, в котором потоки для выполнения параллелизма, используя все эти машины с помощью этой команды:
./script.py '100 digits number' slaves.hostnames=hostname1,hostname2,hostname3 --slaves 4 --client-threads 2
Приведенное выше число является числом, которое мне нужно учитывать, используя все эти машины, чтобы уменьшить общее время выполнения.
Существует несколько инструментов для того, чтобы иметь своего рода "параллель 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 (Интерфейс передачи сообщений). Я предлагаю MPICH. MPI обеспечивает стандартное средство сообщения решить проблему совместно с несколькими машинами параллельно. Хотя, пишущий быстрые приложения для нахождения главных чисел/факторов не ничто нового.
, Если у Вас есть многоядерная машина, используйте многопоточность. Но если Вы соберетесь использовать несколько компьютеров, то Вам будет нужен MPI.