GNU Parallelを使用して線形拡張を期待できますか?

GNU Parallelを使用して線形拡張を期待できますか?

私はGNU Parallelを使ってベンチマークを行いました。 1つのコアで同じことを行うのと比較して、20のコアを使用してスピードアップをテストしました。ほぼ完全な線形拡張を期待すべきですか?つまり、コアを1つだけ使用するよりも計算が〜20倍速いでしょうか?

明確にするために、スケジューラ(例:slurm)はいいえ使用しています。

ベストアンサー1

時々違うよね確かに知っている唯一の方法は測定することです。

CPUにハイパースレッディングがある場合:いいえ。ハイパースレッディングはCPUを2コアに変換し、シングルスレッドパフォーマンスの約70%を提供します。

コアがキャッシュを共有している場合:そうではありません。アプリケーションによっては、大規模なキャッシュに大きく依存する可能性があります。複数のコアが同じキャッシュを共有するため、キャッシュ不足のリスクが増えます。

CPUが温度に応じて周波数を調整する場合(ターボブーストとも呼ばれる):いいえ。シングルコアは、同じ速度で実行されるCPUの2つのコアよりもCPU温度が低くなります。これにより、マルチコアが有効になっている場合よりも、シングルコアでCPUを高速に実行できます。これはハイパースレッディングに似ていることがよくあります。各コアは遅くなりますが、全体のスループットは高くなります。

ジョブが入出力に大きく依存する場合は、状況によって異なります。バラよりhttps://oletange.wordpress.com/2015/07/04/parallel-disk-io-is-it-faster/

おすすめ記事