最適化問題に対する超高速&安定計算

大規模最適化問題、グラフ探索、機械学習やデジタルツインなどの研究のお話が中心

SDPA 改造中 その3

2010年11月26日 02時36分07秒 | Weblog
前回の話の続きであるが、SDPA の SCM のマルチスレッド計算の部分を現在変更&改善中である。これまで採用していた動的な負荷分散は一旦止めにして事前に各スレッドに計算する行を割り当てるようにしている。



○行番号順にスレッドに仕事を割り当てていく。割り当て量が”全仕事量 / スレッド数”を越えたら次のスレッドに割り当てる。最後のスレッドの仕事量は少なめになる。
スレッド番号: 仕事量(計算量)
1: 1162478024280.000000
2: 1163614234076.000000
3: 1163861405672.000000
4: 1162783829258.000000
5: 1162850520444.000000
6: 1162479025872.000000
7: 1162599575326.000000
8: 1147114595742.000000

○なるべく各スレッドの仕事量が均等になるように割り当てていく。各スレッドに割り当てられた行番号が連続しているとは限らない。
スレッド番号: 仕事量(計算量)
1: 1163258562622.000000
2: 1163285102594.000000
3: 1163161737610.000000
4: 1163160694252.000000
5: 1163185723086.000000
6: 1163186821016.000000
7: 1163105552090.000000
8: 1163117203174.000000

後者の方が確かに各スレッドに均等に割り付けられてはいるものの、仕事量の合計ではむしろ大きくなってしまう。各スレッドの実行は完全に同期されて始まるわけではなくわずかに時間差があるので、少し仕事量が多めのスレッドがあっても、それが小さい番号のスレッドの場合には全体にあまり悪い影響を与えないようだ。他にもいろいろと判明してきたことがあるので、変更と改善はしばらく続ける予定。
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« TEPS その4 | トップ | 最短路問題でよく見かける話題 »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

Weblog」カテゴリの最新記事