ryuon
並列化(OpenMP)。
昨日の続き。
非周期のA.xのOpenMP版:
うまくいかない原因、判明:
private にするべき配列を落としていた。
これで、結果は正しくなった。
performance をチェック。
bench.c の ptime_ms_d で計算時間を見ている (これは getrusage を使ってる)が、 どうも threads の全てを足し上げているみたいで、 うれしくない。どうしようかな。
付記: "getrusage with pthreads"@freebsd-threads
Brownian dynamics の bottle neck を探す。
(ちなみに、今の計算は no-HI なので、上の処方は全然効かない。)
ptime_ms_d で順次積めていくと、 ev-dh.c にたどり着いた。
まあ、考えてみれば当たり前な訳だが。
直ぐに思いつくアイデアはあるが、 まずは並列化で遊んでみよう。
10/30/2008: 並列化断念で、こっちに戻る。
ev-dhのOpenMP版:
素直に for loop を並列化しようとするが、 またしても値がおかしい……。
今日はここまで。