パスワードを忘れた? アカウント作成
911974 journal
日記

t-nissieの日記: 【電脳】FFTWのOpenMP並列でいまいち3次元r2c, c2rの速さが出ない 1

日記 by t-nissie

FFTWのOpenMP並列でいまいち3次元r2c, c2rの速さが出ない。
planを作るとき並列化効率が上がらないと
thread数を指定より勝手に下げてしまうみたい。
そのときネストして並列化してやる必要があるのだろうか???
http://www.fftw.org/doc/How-Many-Threads-to-Use_003f.html

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2011年11月25日 3時43分 (#2055869)

    fftwはgccのOpenMP拡張にかなり早い時期から対応していたんだけど、OpenMP版は普通にThread使うより遅くなっちゃったのね。
    丁度Linux2.6のPOSIX threadとか、hrtimerなんかの時期と重なっちゃったってのもあるけど、それが無くともOpenMP版はかなり残念な性能だったわけ。
    なもんでtar玉makeすると、make時にその旨のメッセージを出してくれたりしてたんだけど
    いつごろからか「OpenMPだからってthread使わない意味なくね? OpenMPとthread同時に使ったらかなり早くなるんじゃね?」みたいな方向転換してメッセージも出なくなり、両方使う今に至るわけよ。
    残念な性能はそのままだけど、「もしこの先16コアCPUとか、32コアCPUとか出たらOpneMPの巻き返しあるかも?」と開発者の誰もが思っているのでOpenMPを棄てられないんだろう。
    現状使うなら--enable-sse --enable-sse2 --enable-threadsだけして、OpenMPは--disable-openmpで使う方が良さげ。

typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...