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}