Как использовать gnu_parallel для запуска исполняемого файла из списка файлов? - PullRequest
1 голос
/ 30 апреля 2019

В настоящее время я учусь использовать gnu_paralle. Я прочитал https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Working-as-xargs--n1.-Argument-appending

, а также несколько других ресурсов и некоторые успехи в изучении синтаксиса.

На данный момент у меня есть скомпилированный исполняемый файл g ++, который принимает * argv. В настоящее время я запускаю его последовательно, выполняя в bash следующее:

cd ./ && find ./data | grep '\.data.format$' > datalist.tmp;

Затем я читаю этот список файлов в следующем порядке

while read LINE; do executable $LINE; done <datalist.tmp

Теперь. Из прочтения документации gnu_parallel я понял, что обработка исполняемого файла в нескольких экземплярах может выполняться параллельно.

Кто-нибудь поможет с синтаксисом здесь, пожалуйста?

Ответы [ 2 ]

1 голос
/ 30 апреля 2019

Попробуйте:

parallel -a datalist.tmp executable

Или:

parallel executable < datalist.tmp

Не уверен, что делает cd ./ - похоже, он меняет каталог на текущий, что кажется бессмысленным, потому что именно тампроцесс уже.

0 голосов
/ 30 апреля 2019

Спасибо. В итоге я нашел следующее решение,

while read LINE; do echo executable.exe $LINE ; done < data.tmp |paralell -j4
...