2012-05-04 16 views
3

私は5Gbから35Gbまでの大きさのfastqファイルを処理するための短いPythonスクリプトを書いています。私は多くのコアを持つLinuxサーバーでスクリプトを実行しています。スクリプトはまったく並行して書かれておらず、1つのファイルに対して平均して約10分かかる。複数回実行すると並列化されますか?

私は、プロセスをバックプッシュする&記号を使用して

$ python my_script.py file1 & 
$ python my_script.py file2 & 
$ python my_script.py file3 & 

のようないくつかのファイルに同じスクリプトを実行する場合。

これらのスクリプトを並行して実行すると時間が節約できますか?

プロセッサの使用状況を確認するためにトップコマンドを使用しているため、新しい実行を追加したり、100%近く使用しないでください。

もしそれらが並行して実行されていなければ、それらを並列に実行する方法はありますか?コマンドが実際に並行して実行するのです。この方法を実行

答えて

3

答えを

感謝。彼らがあなたのCPU時間の100%を使い切っていないのは、CPUに束縛されているのではなく、I/O境界だからです。スクリプトが何をするか(「5Gbから35Gbまでの大きなfastqファイル」)の記述は、これがちょうどそのようであるかもしれないことを示唆しています。

あなたはpsによって与えられたプロセスのリストを見れば、しかし、あなたはそこに3つのpythonのプロセスが表示されるはずです - それらのうちの1つ以上は、あなたがpsを実行する時点で終了していますしない限り。

+0

ありがとうございます。 – svural

2

I/O操作で待機するのに費やされる時間は、異なる種類のCPU使用率として通常は%waと計算されます。おそらく%us(ユーザーCPU時間)を見ているだけです。

関連する問題