CPU 時間の増加 ( time
CLI コマンドによって報告される) は、ハイパースレッディングが使用されているときの非効率性を示していますか (スピンロックやキャッシュ ミスに費やされた時間など)、または HT の奇妙な性質によって CPU 時間が膨張している可能性はありますか? (例: 実際のコアがビジー状態で、HT が開始できない)
私はクアッドコア i7 を使用しており、OpenMP プログラムの単純に並列化可能な部分 (イメージからパレットへの再マッピング) をテストしています— ロックもクリティカル セクションもありません。すべてのスレッドは、読み取り専用の共有メモリ (ルックアップ テーブル) に少しアクセスしますが、独自のメモリにのみ書き込みます。
cores real CPU
1: 5.8 5.8
2: 3.7 5.9
3: 3.1 6.1
4: 2.9 6.8
5: 2.8 7.6
6: 2.7 8.2
7: 2.6 9.0
8: 2.5 9.7
コア数が 1 ~ 2 を超えると、使用する CPU 時間が急激に増加することが懸念されます。
理想的なシナリオでは、CPU 時間はそれほど増加しないと思います (同じ量の作業が複数のコアに分散されるだけです)。
これは、プログラムの並列化にオーバーヘッドの 40% が費やされているということですか?