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

t-nissieの日記: 【電脳】並列化率を上げるためにさらにやるべきこと 3

日記 by t-nissie

フリーソフトウエアの強誘電体シミュレータferam-0.18.05のgfortranでの並列化率(プログラムで並列化されている部分の割合)をさらに上げるには、すでにSR11000で並列化が済んでいるので、それのプロファイルとgfortranのほうのompPとかで取ったプロファイルとを見比べながら足りないところに1つ1つOpenMPのディレクティブを入れていくだけ。valgrindとかも使えるのかなぁ。

ompPはPAPI hw-counter libraryがあるとより情報を取ってくれるらしい。

feram-0.18.05/src/18example-benchmark/で取った並列化率、並列効果の図

feramは使用メモリ量が少ないです。2GBもあれば十分です。だれか遊んでみない?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 今は時間がないのであんまり中をみたりとかできないんですけど。

    gcc-4.4.5 な gfortran でコンパイルしてテストを実行するところまでは
    できました。(今動いたところなので終わってないけど)
    もうちょっと時間ができたら中を見れるかも。とりあえず双極子の相互作用
    で逆格子の何かをしているようなトコロだけは見ました。

    ところで、コンパイルについてなんですけど、fftw3(3.2.2) の
    configure で --enable-openmp と --enable-threads を両方つけると、
    この二つは mutually exclusive だ、と怒られてコケました。
    --enable-openmp だけでやったら動いたんですが、コレでいいんですか?

    # 正確には --enable-openmp で作って libfftw3_omp.* という名前の
    # リンクを作りました。ディストロによっては openmp 版のパッケージも
    # あるのかな。とりあえず debian/squeeze ではなさそうでした。

    あと、メモリは全然使わないですね。相当でかい系を作らない限り
    100 MB にすらなかなか到達しないように見えます。
    この辺はこっち側の MD といっしょですね。

    • fftw-3.3.1なら--enable-openmp と --enable-threads を両方つけることができます。
      Debian系はfftwパッケージにlibfftw3_omp.*が入っていないです。
      そのせいでferamのコンパイルができなくて困っている人がいるようです。
      Debianのfftwパッケージのメンテナに連絡を取ってみます。
      3次元FFTの場合、libfftw3_threads.*よりlibfftw3_omp.*のほうが速かったのでlibfftw3_omp.*を使っています。
      --
      love && peace && free_software
      t-nissie
      親コメント
  • by Anonymous Coward on 2012年03月03日 16時11分 (#2110709)

    NetWalkerでferamが動きました。
    と言っても0.18.05ではfftwのopenMPが云々と言われてNGでしたので、
    0.03.05をインストールしてみたら動作しているようにみえます。
    でも、何だか分かりません。
    YBa2Cu3Oδ-xの超電導体の計算の仕方を教えて......

typodupeerror

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

読み込み中...