初めて pthread をいじっていて、自分のマシンで実行しているときに奇妙なことに気付きました。
2 つの物理コアと 4 つの仮想コアを備えた Intel i5 を使用しています。
プログラムを 2 スレッドで実行すると、パフォーマンスが約 2 倍になりますが、4 スレッドで実行すると、2 スレッドと同じパフォーマンスが得られます。これはなぜですか?
2 つのスレッドでの結果: real 0m9.335s user 0m18.233s sys 0m0.132s
4 つのスレッドでの結果: real 0m9.427s user 0m34.130s sys 0m0.180s
編集: コードは完全に並列化可能で、スレッドは共有リソースなしで独立して実行されます。