3

サイズが 5Gb から 35Gb の大きな fastq ファイルを処理するための短い Python スクリプトを作成しました。多くのコアを持つ Linux サーバーでスクリプトを実行しています。スクリプトはまったく並行して書かれておらず、平均して 1 つのファイルを完了するのに約 10 分かかります。

次のような複数のファイルで同じスクリプトを実行すると

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

& 記号を使用してプロセスを押し戻します。

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

私は top コマンドを使用してプロセッサの使用状況を確認しており、新しい実行を追加するとそれぞれの使用状況が低下するため、そうではないようです。

したがって、それらが並行して実行されていない場合、OS にそれらを並行して実行させる方法はありますか?

回答ありがとうございます

4

2 に答える 2

3

この方法で実行されるコマンドは、実際に並行して実行されます。CPU 時間の 100% を使用していない理由は、CPU バウンドではなく、I/O バウンドである可能性があります。スクリプトが行うことの説明 (「サイズが 5Gb から 35Gb の大きな fastq ファイル」) は、これがまさにそのケースである可能性があることを示唆しています。

psただし、によって与えられたプロセス リストを見ると、pythonそこに 3 つのプロセスが表示されるはずですps

于 2012-05-04T18:03:10.203 に答える
2

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

于 2012-05-04T19:22:54.850 に答える