`xargs -P 0`は正確に何をしているのか、それを使うのは良い考えですか?

`xargs -P 0`は正確に何をしているのか、それを使うのは良い考えですか?

xargsはコマンドを提供し、ドキュメントはコマンドを並列xargs -P 0に実行するためにできるだけ多くのプロセスを作成すると言います。しかし、たとえば、使用可能なCPUの数またはほぼ数万のスレッドで停止しますか? 2番目のオプションは、CPUスレッドの数を中心に生成するよりも効率が悪いですか?プロセス間で絶えず変更するには無視できない時間がかかると思います。そうですか?

ベストアンサー1

結局私は自分でテストしてみました。したがって、-P 0すべてのプロセスを同時に実行しようとしますが(制限はOSごとに許容される最大スレッド数であり、おそらく数千個であると考えられます)、CPU集約的な作業に使用するのは遅くなり、非常に悪い考えです。ダウンすると、システムが非常に遅くなります。

約200個のプロセスでpdflatexテストしましたが、全体の実行時間は実際には200個のプロセスを使用するよりも長かった(1:10分ではなく2:05分)-P 16(プロセス間の移行に追加の時間がこの時点で説明されているようです)。しかも-P 0OS全体がレックがかかって使いにくいのに-P 16…(私のCPUはCPUスレッドが8つです。)

おすすめ記事