0

4 コアと 4 スレッドの Intel i5 プロセッサを使用しています。現在、pthreads と ISPC (Intel SPMD Program Compiler) を使用してマンデルブロ セットのシミュレーションに取り組んでいます。タスク分割、つまりイメージの空間分解に基づいて、マンデルブロ集合イメージの計算に 2 つのスレッドを使用すると、1.9 倍の速度が見られ、3 つのスレッドを使用すると 1.65 倍の速度が見られ、4 つのスレッドを使用すると 2.4 倍の速度に飽和します。i5 は 4 スレッドなので、プログラムの並列処理を十分に行うと (pthread を使用)、4 倍の速度アップが期待できます。3 スレッドを使用すると速度が低下するのはなぜですか? 期待通りの高速化が見られない理由は?

注: gcc を使用して pthreads を API としてコンパイルしています。分割は、画像の空間分解に基づいています。ロックやセマフォは使用していません。

mandelbrot の wiki リンク http://en.wikipedia.org/wiki/Mandelbrot_set

ISPC ドキュメントの github リンク http://ispc.github.io/

質問が無関係であることがわかった場合は、適切な情報源にリダイレクトしてください。お時間をいただきありがとうございます。

4

0 に答える 0