Запуск исполняемого файла на нескольких ядрах с использованием скрипта bash - PullRequest
2 голосов
/ 27 апреля 2020

Извините, если это повторный вопрос, и я знаю, что есть много подобных вопросов, но я действительно изо всех сил пытаюсь найти простой ответ, который работает.

Я хочу запустить исполняемый файл много раз например.

seq 100 | xargs -Iz ./program

Однако я хотел бы запустить это на нескольких ядрах на моей машине (в настоящее время на MacBook Pro, так что 4 ядра), чтобы ускорить процесс.

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

Может ли кто-нибудь мне помочь? Спасибо

1 Ответ

2 голосов
/ 27 апреля 2020

Итак, для запуска ./program 100 раз, с GNU Parallel все, что вам нужно:

parallel -N0 ./program ::: {1..100}

Если ваш процессор имеет 8 ядер, он будет работать 8 параллельно, пока все работы не будут выполнены. Если вы хотите запустить, скажем, 12, параллельно:

parallel -j 12 -N0 ./program ::: {1..100}
...