GNU Parallel - несколько аргументов
Параллельно с использованием GNU я пытаюсь запустить сценарий субсэмплинга, который вводит два файла и выводит определенный субсэмплированный файл. Я использую эту команду:
parallel -j+0 --eta python sub_sample_.2.py ::: file1 file2 ::: file3 file4 ::: file5 file6
Но в командной строке нет ETA, а именно:
Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
ETA: 0s Left 8 AVG:0.00s local:8/0/1005/0.0
Также обрабатываются только первые четыре файла, но не последние два: file5
а также file6
,
1 ответ
parallel -j+0 --eta python sub_sample_.2.py ::: file1 file2 ::: file3 file4 ::: file5 file6
2*2*2 = 8 рабочих мест.
Computer:jobs running/jobs completed/%of started jobs/Average seconds to complete
ETA: 0s Left 8 AVG:0.00s local:8/0/1005/0.0
ETA рассчитывается по времени выполнения завершенных заданий. Здесь еще ни одна работа не закончена, поэтому нет ETA. Вы также можете видеть, что все 8 заданий выполняются в вашей локальной системе, поэтому у вас, вероятно, 8 или более ядер.
Также обрабатываются только первые четыре файла, но не последние два:
file5
а такжеfile6
,
Написанный таким образом, я подозреваю, что вы можете не знать, что делает несколько:::. Запустите --dryrun и посмотрите, будет ли это то, что вы ожидаете.
Я думаю, что вы действительно хотите запустить (требуется версия 20160422 или более поздняя версия):
parallel --eta python sub_sample_.2.py ::: file1 file3 file5 :::+ file2 file4 file6
Или же:
parallel --xapply --eta python sub_sample_.2.py ::: file1 file3 file5 ::: file2 file4 file6