まず:しないでください。
parallel ... ::: $(cat foo)
実行します。ほとんどのケースで
parallel ... :::: foo
それがスペースを含む行が含まれている場合、最初に問題を引き起こす可能性があり、一方、これはあなたがやりたいだろう。
PatinN_files.txtにはPatinN_videos.txtと同じ行数があるものとします。
通常、私は2つのランを行うだろう:TRACE3・ランとtrace5実行を:
また
parallel ./FolderCounter {1} trace3 ";" ./VideoCounter {2} trace3 ::::+ PatinN_files.txt PatinN_videos.txt &> data_output/Result_PatinN.txt
parallel ./FolderCounter {1} trace5 ";" ./VideoCounter {2} trace5 ::::+ PatinS_files.txt PatinS_videos.txt &> data_output/Result_PatinS.txt
あなたは、単にこれはしていません(最初に実行し、それらを実行するために、すべてのコマンドを生成するために、GNUパラレルを使用することができます同じ行数)を持つようにTXT-ファイルが必要です。
) | parallel --tag &> data_output/Result.txt
:
(
parallel --dry-run ./FolderCounter {} trace3 :::: PatinN_files.txt
parallel --dry-run ./FolderCounter {} trace5 :::: PatinS_files.txt
parallel --dry-run ./VideoCounter {} trace3 :::: PatinN_videos.txt
parallel --dry-run ./VideoCounter {} trace5 :::: PatinS_videos.txt
) | parallel &> data_output/Result.txt
が入力追跡するにはどのような出力、使用を生成し、
4つの異なるファイルにログ出力を取得するのは少し難しくなります。それが本当に必要なのであれば、それはできますが、上記と同じくらいエレガントではありません。
あなたは、単に予備のCPUのアイドル状態がある場合は、ジョブを実行したい場合は、あなたが--load 100%
を使用することができますが:
parallel --load 100% ./FolderCounter {} trace3 ::: $(cat PatinN_files.txt) &> data_output/Result_PatinN_files.txt &
parallel --load 100% ./FolderCounter {} trace5 ::: $(cat PatinS_files.txt) &> data_output/Result_PatinS_files.txt &
parallel --load 100% ./VideoCounter {} trace3 ::: $(cat PatinN_videos.txt) &> data_output/Result_PatinN_video.txt &
parallel --load 100% ./VideoCounter {} trace5 ::: $(cat PatinS_videos.txt) &> data_output/Result_PatinS_video.txt &
wait
インスタント負荷がCPUの数よりも少ない場合には、ジョブを開始します。