GNU параллельно обрабатывает несколько файлов в разных экземплярах

Я хочу обработать много файлов на многих экземплярах базы данных. Экземпляры находятся на разных компьютерах, один компьютер может содержать до 4 экземпляров.

Процесс запускается на экземпляре через оболочку bash:

process-on.sh <file_to_process> <instance_name>

process-on.sh знает, как получить доступ к экземпляру (серверу, имени сценария и т. д.) из instance_name, Один и тот же Unix-клиент используется для запуска процессов для всех экземпляров на одном хосте, меняется только имя удаленного скрипта.

Я хотел бы, чтобы экземпляры действовали как пул процессоров, и я хотел бы использовать gnu-rallel в качестве распределителя файлов между экземплярами.

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

Любые советы будут высоко ценится.

Лучший, Кристоф

1 ответ

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

instances=13
parallel -j$instances 'sleep 0.$RANDOM; echo this is file {} being processed on instance {%}' ::: {1..100}
Другие вопросы по тегам