2016-07-29 11 views
0

64コアマシンで2000ファイルを処理したいと思います。私は2000のファイルが40、サイズ50のそれぞれを設定するにfile01999.txtするfile0000.txt分割され、各セットにfoo.py実行するために理想的GNU並列のないbashで並列にタスクを実行する方法

cat file0000.txt|./foo.py > out0000.txt 

う:私はこのように実行Pythonスクリプトfoo.pyを持っています平行。次の相当します40のうち4にセット1の場合:

cat file00[0-4][0-9] |./foo.py > outfile1.txt & 
cat file00[5-9][0-9] |./foo.py > outfile2.txt & 
cat file01[0-4][0-9] |./foo.py > outfile3.txt & 
cat file01[5-9][0-9] |./foo.py > outfile4.txt & 

は、悲しいことに、私が上でこれを実行しているシステムが parallelを持っていないので、私はそれに非常に便利なツールなしでこれを行う必要があります。

Bash script processing commands in parallelとよく似ていますが、最も一般的な回答は直接関連性がなく、2番目によく使われる回答は私がアクセスできないparallelを使用しています。コメントを1として

+0

とは何であるあなたがあなた自身のスクリプトを実行するために許可されている場合は行うことが許可されているGNUパラレルの個人的なインストールを実行します。 'xargs'と' -P max-procs'オプションの問題? – Alper

+0

@Alperそれは答えかもしれないが、私はそれを使ったことはない。あなたはそれを私の問題にどう使っていますか? – eleanora

+1

'ls -1 |注: 'ls -1'はあなたの入力ファイルをリストし、' -P 5'を変更する必要があります。好きなように。 – Alper

答えて

1

は:その後、

./configure --prefix=$HOME && make && make install 

そして:

ls | ~/bin/parallel 'cat {} | ./foo.py > {= s/file/out/ =}' 
関連する問題