2016-12-28 3 views
0

Я имею команду в питона так:команды запуска питона параллельно с использованием оболочки

Python my_prog in1.fa ins.fa out1.fa 
Python my_prog in2.fa ins.fa out2.fa 
Python my_prog in3.fa ins.fa out3.fa 

Я использовал параллельную команду GNU параллельно, и я собрать файлы in1.fa, in2.fa и in3.fa в одном файле IN.fa. Моя проблема заключается в том, что я не знаю, как добавить другую команду или больше в параллельную команду. вот моя команда:

cat IN.fa | parallel -j 20 --cat --pipe --block 3M --recstart '>' time python my_prog.py 

Как я могу сделать несколько аргументов в командной Параллель, пожалуйста?

ответ

1

Предположим, что my_prog может считывать данные из стандартного ввода и посылать данные на стандартный вывод, и что он принимает один аргумент (ins.fa):

parallel --pipepart -a in.fa --block 3M Python my_prog ins.fa > out.fa 

Если my_prog не может читать из стандартного ввода, а от имени трубы (ФИФО) это будет работать:

parallel --fifo --pipepart -a in.fa Python my_prog {} ins.fa > out.fa 

Если my_prog не может читать из FIFO, но только сам файл, это будет работать:

parallel --cat --pipepart -a in.fa Python my_prog {} ins.fa > out.fa 

Если my_prog не может выводить на стандартный вывод, но может выводить на ФИФО часто можно использовать:

parallel --cat --pipepart -a in.fa Python my_prog {} ins.fa {#}.out /dev/stdout > out.fa 

Или:

parallel --cat --pipepart -a in.fa Python my_prog {} ins.fa {#}.out '>(cat)' > out.fa 

Если my_prog не может выводить на ФИФО, вам нужно вывести его в файл с уникальным именем, который вы можете затем cat и удалить. Здесь мы используем порядковый номер для создания уникального файла.

parallel --cat --pipepart -a in.fa Python my_prog {} ins.fa {#}.out '; cat {#}.out; rm {#}.out' > out.fa 

Вы действительно должны рассмотреть возможность прохождения учебника. Он ответит на это и так много вопросов: мужчина parallel_tutorial

+0

нет! это не мой вопрос. Я хочу разбить свой файл IN.fa на подфайлы в блоке 3M, так как они сравниваются с ins.fa и каждый раз дает мне результат в отдельном файле. – midox

Смежные вопросы