LinuxのC:25個の並列プロセスを実行する方が、24個のプロセスを実行するよりもはるかに高速です。

LinuxのC:25個の並列プロセスを実行する方が、24個のプロセスを実行するよりもはるかに高速です。

私のCプログラムは、新しいプロセスを作成し、各プロセスがタスクを完了するのにかかる時間を測定するためにfork()を使用します。実際、私は彼らにこの仕事を10,000回させ、時間を測定しました。

測定はgettimeofday(...)を介して実行され、各プロセスが完了した後に結果が印刷されます。

要点は、24の並列プロセスを実行すると、この時間が約180,000usecにクラスタ化されることです。しかし、プロセスを25に増やすと時間が短くなり、約100,000usecに収束します。これはLinuxに固有のものですか?より多くのプロセスを作成すると、オペレーティングシステムでより多くのリソースを取得できますか?

それともこれが全く不可能で、私が測定している時間が間違っているのでしょうか? 1-> 24プロセスでは測定値が増加し、25プロセスでは減少することに注意する必要があります。

ベストアンサー1

おすすめ記事