2015-04-01 4 views
0

Я хотел бы запустить несколько экземпляров рандомизированного алгоритма. По соображениям производительности я хотел бы распространять задачи на нескольких машинах.Запуск нескольких экземпляров процесса на нескольких серверах

Обычно я бегу свою программу следующим образом:

./main <input.txt> output.txt 

и она занимает около 30 минут, чтобы вернуть решение.

Я хотел бы запустить как можно больше экземпляров, и в идеале не изменять код программы. Мои вопросы:

1 - Какие онлайн-сервисы предлагают вычислительные ресурсы, которые бы соответствовали моей потребности?

2 - Практически, как я должен удаленно запускать все процессы, получать уведомления о завершении, а затем суммировать результаты (в основном, выбрать лучшее решение). Есть ли простая структура, которую я мог бы использовать, или я должен искать скрипты на основе ssh?

ответ

1

1 - Какие онлайн-сервисы предлагают вычислительные ресурсы, которые бы соответствовали моей потребности?

Amazon EC2.

2 - Практически, как я должен удаленно запускать все процессы, получать уведомления о завершении, а затем суммировать результаты (в основном, подобрать лучшее решение). Есть ли простая структура, которую я мог бы использовать, или я должен искать скрипты на основе ssh?

Amazon EC2 имеет API для запуска виртуальных машин. После их запуска вы можете использовать ssh для управления заданиями, и я бы рекомендовал это решение. Я ожидаю, что существуют другие программные средства для распределенного управления заданиями, но они вряд ли будут проще конфигурировать, чем ssh.

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