2

ここに画像の説明を入力

ここでの私の質問は、作業を各スレッドに分散し、それらから計算値を取得するためにどのデータ構造を使用する必要があるかということです。最初に頭に浮かんだのは、ベクトル [0] .. ベクトル [63999] (800x800 ピクセルの場合) を x、y および iterate_value を保持する構造体で埋めることです。それらのベクトルを各ノードに渡します->次に、指定されたベクトルを各コア(Os-thread)にさらに分割します->次に、指定されたベクトルを各スレッドにさらに分割します。値を送受信する他の方法はありますか? また、ベクトルの方法でそれを行う場合、ベクトルを値渡しまたは参照渡しで渡す必要があります。この場合、どちらが良いでしょうか?

4

2 に答える 2

2

ピクセルは等間隔に配置されているのに、それぞれの座標を送信する必要はありません。各ノードに、左下のピクセルの x 座標と y 座標、ピクセル間の間隔、およびピクセル数を伝えるだけです。このようにして、作業単位の仕様は小さな一定サイズになります。

大規模な設計に関する限り、実行する物理コアよりも多くのワーカー スレッドを使用しても意味がありません。コアごとに複数のスレッドのコンテキストを切り替えると、パフォーマンスが低下するだけです。

于 2013-04-17T02:27:33.857 に答える