平衡点


2009/07/09

_ HDF5EOS の debian パッケージ作成中

install script があんまりなのでクラクラする.

_ MPICH2 と OpenMPI

そういえば, どっち使うのが良いんだろう.

_ gtool5 の OpenMP 非対応?

一晩寝かせてから投げることにして. とりあえずメモ

環境

OS:
Debian GNU/Linux sqeeze/sid
Compiler:
  • gfortran 4.3.3 with or without MPI (OpenMPI 1.3.2)
  • Fujitsu Fortran 64bit ver.1 with or without MPI (OpenMPI 1.3.2)
NetCDF:
netcdf 3.6.2
gtool5
gtool5-20090704

現状

Fujitsu でも gfortran でも OpenMP を有効にするとテストで転ぶ.

症例 1
Compiler:
Fujitsu Fortran, without MPI.

OpenMP を有効(-KOMP)にすると以下のテストで転ぶ

$ make test-installed
  ...
make[3]: `histtest' は更新済みです
make[3]: ディレクトリ `/home/uwabami/work/GFD/gtool5-20090704/test' から出ます
*** PutLine test ** #<GT_HISTORY:: @initialized=no>
*** MESSAGE [HistoryCreate3] ***  "xhisttest/xhisttest1.nc" is created (origin=0. [s])
*** MESSAGE [HistoryCreate3] ***  "xhisttest/xhisttest9.nc" is created (origin=0. [s])
*** ERROR (Code -117) [GTVarGetPointerReal1] ***   invalid allocated size
histtest.sh: line 45: 10560 アボートしました./histtest 2> xdifs.log
Error: stderr is output to xdifs.log .
make[2]: *** [test] エラー 1
  • OpenMP を有効にしない場合には, テストは通る(このエラーは出ない).
  • gfortran では OpenMP を有効にした場合(-fopenmp)でも, テストは通る.
    • MPI を有効にしても同様
症例 2
Compiler:
  • gfortran with MPI
  • Fujitsu Fortran with MPI

OpenMP を有効(-fopenmp, -KOMP) にした場合に, test-mpi-installed で以下のエラー.

$ make test-mpi-installed
...
make[3]: `histtest_mpi' は更新済みです
make[3]: ディレクトリ `/home/uwabami/work/GFD/gtool5-20090704/test' から出ます
 *** MESSAGE [HistoryCreate3] ***  "xhisttest_mpi/xhisttest_mpi1_rank000001.nc" is created (origin=0. [sec.])
 *** MESSAGE [HistoryCreate3] ***  "xhisttest_mpi/xhisttest_mpi1_rank000003.nc" is created (origin=0. [sec.])
 *** MESSAGE [HistoryCreate3] ***  "xhisttest_mpi/xhisttest_mpi1_rank000000.nc" is created (origin=0. [sec.])
 ...
 *** MESSAGE [HistoryClose] ***  "xhisttest_mpi/xhisttest_mpi10.nc" is closed
 making CDL files from original data files ................  done.
 making CDL files from generated data files ................  done.
 testing xhisttest_mpi1_rank000000.nc ...9a10,11
 >               lon:topology = "circular"
 >               lon:modulo = 360.f
   Error: stderr is output to xdifs.log .
  • gfortran, Fujitsu Fortran ともOpenMP を有効にしない場合にはテストは通る(エラーは出ない)

まとめ

というわけで, OpenMP + MPI のハイブリッド並列を実行しようとしても, 動作しない(かもしれない)のが現状.

I/O ライブラリが OpenMP に対応していないからと言って,本チャンのモデルが走らない, って事は無いとは思うんですがね.

要望

以下, 非常にどうでも良い(?)こと

  • テスト実行後にテスト用の original な NetCDF が更新されるのはちょっと嫌. original な奴は更新しない or 更新されるモンはテスト時に自動生成して, 配布物には同梱しない方が良いと思ったりする.
  • mpiexec の指定(--with-mpiexec) が効かない事があるのですが, 何故?

    • まあ configure の自動判定がちょっとアレなんだろうから,適当に書けば良いのですけれど.

    ... configure: error: "/usr/local/stow/openmpi-ffc/bin/mpif90" compiler does not support MPI. Specify MPI fortran compiler to "$FC"

  • mpiexec 指定時に prefix にまで -mpi を付けるのはやりすぎだと思います.
    • prefix の意味無いじゃん. 住みわけの為にそうしているのかな?
    • にしても, なんか嫌.

(追記)

そういや OpenMP 有効にした際にはスレッド数指定していなかった. 関係無いと思うけれど.

(追記2)

OpenMPIOpenMP が混乱しそうだったので修正.

(追記3)

OpenMP 有効にした時に test に転ぶのって, gt4f90io の頃からだった.エラーも同じ. むーん.

(追記4)

20090704 の更新で MPI 有効時に test に転ぶエラーは無くなりました.対応早い. さすが.


連絡先など
最近の日記
  • 2024/10/09
    • 1. Mastodon でのメール通知, というか Exim4 と Apparmor
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|10|
Back to Top ▲