Linux/gccN
を使用してスレッドを作成します。各スレッドは、そのIDを使用して可能な限り高速にpthread_create
書き込みますが、それ以外は何も行いません。for (;;) printf(...)
プログラム全体を使用して3秒間実行すると、 CPUで約1,000,000行が生成され、約4倍の行が生成されることusleep
に気付きます。4コアCPUで8スレッドのパフォーマンスが向上する理由は何ですか?CPUでハイパースレッディングが有効になっていません。4-core
N=4
N=8
質問する
159 次
2 に答える
1
I/O と CPU の操作は大きく異なります。CPU を集中的に使用する計算を実行する場合は、N= コア数が最適です。I/O の場合、最適な数ははるかに高くなる可能性があります。
于 2012-06-21T08:39:45.713 に答える
0
4スレッドの場合、各コアで1つのスレッドを実行することはできません。どちらも2と8スレッドではありません。マルチコアの考え方は、達成された作業を分離することです。さらに、スレッドIDを表示するだけで、CPUの負荷を軽減できます。したがって、CPU容量ではなく、表示イベントを処理する機能を使用しています。
于 2012-06-21T08:43:54.417 に答える