研究のページ/領域気象モデル/WRFの導入
をテンプレートにして作成
[
トップ
] [
新規
| |
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#topicpath
// WRF Install インストール 領域モデル
** WRF Ver. 3.4.1 と Ver. 3.5 のインストール [#i4bc8d56]
導入についての個人的なまとめ
Debian/GNU Linux の標準的なパッケージだけで簡単に並列...
非標準のコンパイラでライブラリを作り直す気が失せてしま...
実行のしかたもちょっとだけ簡単で、1,2次元の計算にも対...
問題が発生しなければ gfortran で SMP (smpar) を使うこ...
使ったWRFのバージョン:Ver. 3.4.1, 3.5
必要に応じてバージョンによる違いについてコメントした。
-- 目次
--- [[WRF導入準備>./#e1642ebc]]
--- [[ダウンロード>./#o958ed1c]]
--- [[コンパイルから試しの実行まで( gfortran serial -並列...
--- [[コンパイルから試しの実行まで( gfortran dmpar -MPIに...
--- [[コンパイルから試しの実行まで( gfortran smpar -SMPに...
--- [[最適化あれこれ>#ae8f0816]]~
~
※ なお、詳細な情報は WRF の [[ARWの User's Guide>http://w...
※ WRF を使う上での色々は、[[こちら(領域気象モデルのペー...
~
*** WRF 導入準備 [#e1642ebc]
++ 手元のハードウエア環境~
--- CPU~
AMD Phenom(tm) II X6 1065T Processor : 6コア, 2.90 GHz~
~
※ CPU を含むパソコン本体価格は、44,380 円。~
※ Phenom II X6 は、6つのコアそれぞれに浮動小数点演算ユニ...
※ その後のAMDのCPUであるFX-8350は、8コアである。しかし、...
~
// ※ 地球シミュレータとか、どこかの超並列コンピュータを使...
// AMD の 8コアの汎用品を使うのがコストパフォーマンス...
// 参考1 : [[kakaku.comで検索した8コア以上5万円まで...
// 参考2 : [[DOS/Vパラダイスの8コアCPU搭載>http://ww...
// ※ しかし、インテルの方が浮動小数点演算が速いらしい。価...
// 参考 : [[PC Watch記事>http://pc.watch.impress.co...
// ~
--- GPGPU~
Nvidia "Geforce GTX 660" with compute capability 3.0~
※ 装着しているが今のところ使っていない。~
~
++ 並列処理について~
~
並列処理が行われると格段にスピードが向上するので、並列処...
~
近年のコンピュータは、1つの CPU(中央演算処理装置)の中に複...
ネットワークを介して複数のコンピュータで仕事を分散して計...
複数の演算処理装置を同時に動かす技術「並列処理」の発達に...
~
ところが、並列処理は、そもそも複雑な操作を行いながらの最...
てくる。そこで、並列処理には、いくつかのハードウエアのモ...
している(多分)。WRFのような複雑で計算量の多い計算ソフトは...
具体的には次の三つである。ただし、最後の GPGPU は正式には...
ような概念ではないことに注意が必要である(具体的には、SPM...
~
--- &color(darkred){MPI}; (Message Passing Interface)~
ネットワークを介しても並列できるような分散処理のためのソ...
Debian の場合、OpenMPI と MPICH2 がある。以下では OpenMPI...
~
--- &color(darkred){SMP}; (Symmetric Multiprocessing)~
メモリを共有する複数の CPU がある時の並列処理。~
Debian の場合、コンパイラである gcc にその機能が組み込ま...
こちらは OpenMP と呼ばれていて、上述の全く別物の OpenMPI ...
&color(red){※ 現有計算機環境下での結論は SMP(OpenMP) を使...
~
--- &color(darkred){GPGPU}; (General-purpose computing on...
グラフィックス用の演算処理装置を一般の数値計算に利用する...
~
※ [[ここ>http://www.nvidia.co.jp/object/weather_jp.html]]...
しかし、よく見ると、Micro Physics のプログラムについて...
現時点では、WRF 全体で速くなることはほとんどなさそうで...
~
※ ただし、[[Smiling Life の記事>http://blog.livedoor.jp/r...
~
++ ソフトウエア環境~
Debian GNU/Linux (squeeze) で、主な導入済みパッケージは次...
Debian GNU/Linux (wheezy) でも動くようです。ただし、&colo...
#style(class=table_left)
| 用途| パッケージ名 | wheezyのバージョン| squeezeのバー...
|全般 | | | | |
| | gfortran ...
| | gcc ...
| | libnetcdf-dev ...
| | libnetcdf6 ...
| | &color(red){libnetcdfc7}; ...
| | &color(red){libnetcdff5}; ...
| | csh ...
|dmpar (MPIを使う場合。Distributed Memory Parallel) | | ...
| |libopenmpi-dev ...
| |libopenmpi1.3 ...
| |openmpi-bin ...
| |openmpi-checkpoint ...
| |openmpi-common ...
|smpar (SMPを使う場合。Shared Memory Parallel) | | | | |
| |&color(red){libgomp1:amd64}; ...
| |libgomp1 ...
#clear
~
~
++ コンパイラの選択~
~
--- gfortran を選択~
WRF を Linux 上で動作させるとき、標準でサポートされている...
このうち、無料で利用できるのは Intel と gfortran であり、...
とする Intel のコンパイラは使えない。そこで gfortran を使...
~
なお、Ver. 3.5 では、コンパイル時に次のようなメッセージが...
************************** W A R N I N G ***************...
There are some Fortran 20003 features in WRF that your c...
The IEEE signaling call has been removed. That may not ...
********************************************************...
gfortran が Fortran 2003(20003 というのは次々に現れる規格...
とりあえず動いているし、Ver 3.4.1 と変わらないようなので...
~
--- その他の情報とコメント~
・コンパイラを変更すると、OpenMPI などのライブラリも同じ...
・標準的な Debian の環境で WRF を並列処理できるので、環境...
・フリーで Open64 というコンパイラの選択肢もある。しかし...
~
~
// 現在、Fortran は過去の言語となりつつあり、高性能なコン...
// 入手価格が低廉であるか、またはゼロであるようなコンパイ...
*** ダウンロード [#o958ed1c]
-- ユーザー登録~
WRF は無償で手に入れることができる。しかし、ユーザー登録...
http://www.mmm.ucar.edu/wrf/users/download/get_source.htm...
二度目からは、Returning User をクリックすれば、メールアド...
(更新 : 2013-03-25 (月) 14:11:54)~
~
-- プログラムの種類~
WRF を利用するために、ソースプログラムをダウンロードしよ...
ことに気づいて戸惑う。これらのソースプログラムはそれぞれ...
--- &color(darkred){ARW}; : &color(red){A};dvanced &color...
力学計算や放射計算などが組み込まれたソースプログラムであ...
[[UCAR/NCAR の研究部門>http://www.mmm.ucar.edu/]] で開発...
~
--- &color(darkred){NMM}; : &color(red){N};onhydrostatic ...
こちらも力学計算や放射計算などが組み込まれた WRF の中核的...
[[NOAA>http://www.noaa.gov/]]と[[NCEP>http://www.ncep.noa...
現業用であり、研究目的には上記の ARW がよく使われるようで...
~
--- &color(darkred){WPS}; : WRF Preprocessor System~
現実のデータを ARW に与えるための前処理プログラム。
理想的な地形、簡単な初期条件を用いて計算する場合には不必...
~
--- &color(darkred){WRF-DA}; : WRF Data Assimilation~
データ同化システムのようである。詳しくはわからない。~
~
--- &color(darkred){WRF-Chem}; : ~
大気中の化学物質の輸送を計算するプログラムのようである。...
~
--- &color(darkred){Post-Processing Software}; : ~
WRF から出力されたものを図にするためのソフトウエア~
~
--- &color(darkred){Utilities}; : ~
その他の補助的なソフトウエア~
~
-- 理想化実験を行う際にダウンロードすべきもの~
--- ARW~
ソフトウエアの種類は上述のとおりなので、とりあえず必要な...
[[ダウンロードのページ>http://www.mmm.ucar.edu/wrf/users/...
サイズは概ね次の通り。~
・Ver. 3.4.1 : 28MB程度~
・Ver. 3.5 : 38MB程度~
~
--- Post-Processing Software~
描画などの後処理をする場合。とりあえずコンパイルできるこ...
(更新 : 2013-03-25 (月) 14:41:27)~
~
-- 更新ファイル~
--- Ver. 3.4.1 の場合~
いくつかの必要な更新ファイルが出ている(cf. [[Known Proble...
対策のとられた日付けが、Ver 3.4.1 のリリースの日(2012年8...
それほど親切ではないので、確認しながら自分で対策をとる。...
今回の場合( module_mp_radar.F と input_wrf.F )は、全体に...
~
なお、WRF では実行する度にソースツリーが変更される。そこ...
~
--- Ver. 3.5 の場合~
今のところ更新は無い。~
(更新 : 2013-04-30 (火) 19:06:25)~
~
-- Ver. 3.4.1 と Ver. 3.5 の違い
--- ソフトウエアそのものの違い~
更新された部分については、[[ここ>http://www.mmm.ucar.edu/...
--- テストケースの違い(理想化実験では違いなし)~
WRF(ARW)には、計算例としていくつかの設定ファイルが用意さ...
&color(red){理想化実験については};、これらの設定ファイル...
・ dyn_em/module_initialize_*.F~
・ test ディレクトリ~
~
*** コンパイルから試しの実行まで( gfortran serial -並列処...
※ 計測した時間は Ver. 3.4.1 で計測したもの。
++ configure~
コンパイラとして gfortran を選ぶ。また、CPU は一つのコア...
実際の入力と出力結果は次の通り。&color(red){->};は入力に...
-> [localhost] ~/WRFV3 15:34:15 $ ./configure
checking for perl5... no
checking for perl... found /usr/bin/perl (perl)
** WARNING: No path to NETCDF and environment variabl...
** would you like me to try to fix? [y]
-> y
Enter full path to NetCDF include directory on your s...
-> /usr/include
Enter full path to NetCDF library directory on your s...
-> /usr/lib
...(中略)
-----------------------------------------------------...
Please select from among the following supported plat...
1. Linux x86_64, PGI compiler with gcc (serial)
...(中略)
23. x86_64 Linux, gfortran compiler with gcc (se...
...(中略)
-> Enter selection [1-34] : 23
-----------------------------------------------------...
-> Compile for nesting? (0=no nesting, 1=basic, 2=preset...
Configuration successful. To build the model type com...
...(以下省略)
(更新 : 2013-03-25 (月) 15:48:29)~
~
++ compile~
具体的に実行可能プログラムを作るには、compile コマンドを...
-> ./compile
すると、こんな理想化条件が実行できます、というメッセージ...
-> ./compile em_seabreeze2d_x
結構な時間をかけてコンパイルすることになる。一番最後に、...
build started: 2013年 3月 25日 月曜日 15:46:02 JST
build completed: 2013年 3月 25日 月曜日 15:57:42 JST
~
なお、選べるサンプルプログラムは次の通り。~
#style(class=table_left)
| 次元 | ケースの名称 | 設定 ...
| 1 | em_scm_xy | single column model, 4 ...
| | | |
| 2 | em_grav2d_x | gravity current, 100 m ...
| 2 | em_hill2d_x | flow over a hill, 2 km ...
| 2 | em_seabreeze2d_x | water and land, 2 km, 2...
| 2 | em_squall2d_x | squall line, 250 m ...
| 2 | em_squall2d_y | transpose of above prob...
| | | |
| 3 | em_b_wave | baroclinic wave, 100 km...
| 3 | em_fire | surface fire, 50 m ...
| 3 | em_heldsuarez | global case with polar ...
| 3 | em_les | large eddy simulation, ...
| 3 | em_quarter_ss | super cell, 2 km ...
| 3 | em_tropical_cyclone | hurricane, 15 km ...
#clear
~
~
++ 実行
-> cd test/em_seabreeze2d_x
-> csh ./run_me_first.csh
-> ./ideal.exe
-> time ./wrf.exe
最後に
d01 2007-06-01_17:00:00 wrf: SUCCESS COMPLETE WRF
と表示されて実行も終了。time で測った所要時間は次のとおり。
real 4m59.360s
user 4m50.266s
(更新 : 2013-03-25 (月) 16:15:02)~
~
*** コンパイルから試しの実行まで( gfortran dmpar -MPIによ...
※ 計測した時間は Ver. 3.4.1 で計測したもの。
++ configure~
コンパイラとして gfortran を選ぶ。また、CPU の複数コアを...
実際の入力と出力結果(ほとんど省略)~
-> [localhost] ~/WRFV3 15:34:15 $ ./configure
...(中略)
-----------------------------------------------------...
Please select from among the following supported plat...
1. Linux x86_64, PGI compiler with gcc (serial)
...(中略)
25. x86_64 Linux, gfortran compiler with gcc (dm...
...(中略)
-> Enter selection [1-34] : 25
-----------------------------------------------------...
...(以下省略)
~
++ compile~
2次元の海陸風モデルは、MPIに対応していない。そこで、3次元...
-> ./compile em_b_wave
結構な時間をかけてコンパイルすることになる。一番最後に、...
build started: 2013年 3月 25日 月曜日 17:19:28 JST
build completed: 2013年 3月 25日 月曜日 17:31:53 JST
~
++ 実行
-> cd test/em_b_wave
-> csh ./run_me_first.csh
-> mpirun -n 5 ./ideal.exe
-> time mpirun -n 5 ./wrf.exe
ログは表示されない。mpirun を使って実行するところがミソ。...
real 3m21.428s
user 16m32.850s
sys 0m2.952s
同じプログラムを serial で実行すると、dmpar では2〜3倍の...
real 9m19.641s
user 9m2.306s
sys 0m14.033s
(更新 : 2013-03-25 (月) 18:37:30)~
~
*** コンパイルから試しの実行まで( gfortran smpar -SMPによ...
※ 計測した時間は Ver. 3.4.1 で計測したもの。
++ configure~
コンパイラとして gfortran を選ぶ。また、CPU の複数コアを...
実際の入力と出力結果(ほとんど省略)~
-> [localhost] ~/WRFV3 15:34:15 $ ./configure
...(中略)
-----------------------------------------------------...
Please select from among the following supported plat...
1. Linux x86_64, PGI compiler with gcc (serial)
...(中略)
24. x86_64 Linux, gfortran compiler with gcc (sm...
...(中略)
-> Enter selection [1-34] : 24
-----------------------------------------------------...
...(以下省略)
~
++ compile~
3次元の傾圧不安定波を選んで実行する。
-> ./compile em_b_wave
...(中略)
build started: 2013年 3月 28日 木曜日 12:17:18 JST
build completed: 2013年 3月 28日 木曜日 12:28:56 JST
~
++ 実行~
環境変数 OMP_NUM_THREADS でコアの数を与えるのがミソ。
-> cd test/em_b_wave
-> csh ./run_me_first.csh
-> export OMP_NUM_THREADS=5
-> ./ideal.exe
-> time ./wrf.exe
...(中略)
real 3m13.938s
user 15m12.773s
sys 0m28.894s
~
serial で実行するよりも、2〜3倍の速い。~
(更新 : 2013-03-28 (木) 14:43:09)~
~
*** 最適化あれこれ [#ae8f0816]
※ 計測した時間は Ver. 3.4.1 で計測したもの。
-- コンパイルの並列化~
~
./compile を実行する前に
-> export J="-j 5"
などとすると、コンパイルを並行して実行してくれる。ただし...
~
-- 1D, 2D の計算~
~
SMPAR(Shared Memory Parallel) は 1D と 2D の計算にも対応...
real 3m27.437s
user 16m48.059s
sys 0m18.617s
劇的ではないが、serial の時より、若干速い。~
~
-- 最適化オプション~
~
gcc や gfortran には様々なオプションがある。このうち、手...
パフォーマンスが向上するか調べた。方法としては、./configu...
と書いてある場所の後(2箇所)にオプションを追加すればよい。...
その他の条件は、gfortran の smpar で共通で、3D の em_b_wa...
オプションを追加した時の結果を示す。~
~
・最適化オプションを追加しない場合~
real 3m13.938s
user 15m12.773s
sys 0m28.894s
~
・&color(darkred){-march=amdfam10}; をつけた場合~
(CPUのタイプを特定して最適化)~
real 3m11.984s
user 15m1.412s
sys 0m29.902s
ちょっと速くなる。
~
・&color(darkred){-march=amdfam10 -msse4a}; をつけた場合~
(さらに SSE という仕組みで浮動小数点演算を効率化)~
real 3m10.386s
user 14m55.420s
sys 0m29.230s
非常に微妙なパフォーマンスの改善である。~
~
・&color(darkred){-march=amdfam10 -msse4a -mfpmath=sse}; ...
(さらに小数点の扱いを SSE に適したものに)~
real 3m12.716s
user 15m4.077s
sys 0m29.610s
遅くなる意味がわからない。~
~
・&color(darkred){-march=native -msse4a}; をつけた場合~
(CPUのタイプをコンパイラに選ばせる)
real 3m10.787s
user 14m57.172s
sys 0m29.610s
これで十分なようだ。~
(更新 : 2013-03-28 (木) 17:01:48)
終了行:
#topicpath
// WRF Install インストール 領域モデル
** WRF Ver. 3.4.1 と Ver. 3.5 のインストール [#i4bc8d56]
導入についての個人的なまとめ
Debian/GNU Linux の標準的なパッケージだけで簡単に並列...
非標準のコンパイラでライブラリを作り直す気が失せてしま...
実行のしかたもちょっとだけ簡単で、1,2次元の計算にも対...
問題が発生しなければ gfortran で SMP (smpar) を使うこ...
使ったWRFのバージョン:Ver. 3.4.1, 3.5
必要に応じてバージョンによる違いについてコメントした。
-- 目次
--- [[WRF導入準備>./#e1642ebc]]
--- [[ダウンロード>./#o958ed1c]]
--- [[コンパイルから試しの実行まで( gfortran serial -並列...
--- [[コンパイルから試しの実行まで( gfortran dmpar -MPIに...
--- [[コンパイルから試しの実行まで( gfortran smpar -SMPに...
--- [[最適化あれこれ>#ae8f0816]]~
~
※ なお、詳細な情報は WRF の [[ARWの User's Guide>http://w...
※ WRF を使う上での色々は、[[こちら(領域気象モデルのペー...
~
*** WRF 導入準備 [#e1642ebc]
++ 手元のハードウエア環境~
--- CPU~
AMD Phenom(tm) II X6 1065T Processor : 6コア, 2.90 GHz~
~
※ CPU を含むパソコン本体価格は、44,380 円。~
※ Phenom II X6 は、6つのコアそれぞれに浮動小数点演算ユニ...
※ その後のAMDのCPUであるFX-8350は、8コアである。しかし、...
~
// ※ 地球シミュレータとか、どこかの超並列コンピュータを使...
// AMD の 8コアの汎用品を使うのがコストパフォーマンス...
// 参考1 : [[kakaku.comで検索した8コア以上5万円まで...
// 参考2 : [[DOS/Vパラダイスの8コアCPU搭載>http://ww...
// ※ しかし、インテルの方が浮動小数点演算が速いらしい。価...
// 参考 : [[PC Watch記事>http://pc.watch.impress.co...
// ~
--- GPGPU~
Nvidia "Geforce GTX 660" with compute capability 3.0~
※ 装着しているが今のところ使っていない。~
~
++ 並列処理について~
~
並列処理が行われると格段にスピードが向上するので、並列処...
~
近年のコンピュータは、1つの CPU(中央演算処理装置)の中に複...
ネットワークを介して複数のコンピュータで仕事を分散して計...
複数の演算処理装置を同時に動かす技術「並列処理」の発達に...
~
ところが、並列処理は、そもそも複雑な操作を行いながらの最...
てくる。そこで、並列処理には、いくつかのハードウエアのモ...
している(多分)。WRFのような複雑で計算量の多い計算ソフトは...
具体的には次の三つである。ただし、最後の GPGPU は正式には...
ような概念ではないことに注意が必要である(具体的には、SPM...
~
--- &color(darkred){MPI}; (Message Passing Interface)~
ネットワークを介しても並列できるような分散処理のためのソ...
Debian の場合、OpenMPI と MPICH2 がある。以下では OpenMPI...
~
--- &color(darkred){SMP}; (Symmetric Multiprocessing)~
メモリを共有する複数の CPU がある時の並列処理。~
Debian の場合、コンパイラである gcc にその機能が組み込ま...
こちらは OpenMP と呼ばれていて、上述の全く別物の OpenMPI ...
&color(red){※ 現有計算機環境下での結論は SMP(OpenMP) を使...
~
--- &color(darkred){GPGPU}; (General-purpose computing on...
グラフィックス用の演算処理装置を一般の数値計算に利用する...
~
※ [[ここ>http://www.nvidia.co.jp/object/weather_jp.html]]...
しかし、よく見ると、Micro Physics のプログラムについて...
現時点では、WRF 全体で速くなることはほとんどなさそうで...
~
※ ただし、[[Smiling Life の記事>http://blog.livedoor.jp/r...
~
++ ソフトウエア環境~
Debian GNU/Linux (squeeze) で、主な導入済みパッケージは次...
Debian GNU/Linux (wheezy) でも動くようです。ただし、&colo...
#style(class=table_left)
| 用途| パッケージ名 | wheezyのバージョン| squeezeのバー...
|全般 | | | | |
| | gfortran ...
| | gcc ...
| | libnetcdf-dev ...
| | libnetcdf6 ...
| | &color(red){libnetcdfc7}; ...
| | &color(red){libnetcdff5}; ...
| | csh ...
|dmpar (MPIを使う場合。Distributed Memory Parallel) | | ...
| |libopenmpi-dev ...
| |libopenmpi1.3 ...
| |openmpi-bin ...
| |openmpi-checkpoint ...
| |openmpi-common ...
|smpar (SMPを使う場合。Shared Memory Parallel) | | | | |
| |&color(red){libgomp1:amd64}; ...
| |libgomp1 ...
#clear
~
~
++ コンパイラの選択~
~
--- gfortran を選択~
WRF を Linux 上で動作させるとき、標準でサポートされている...
このうち、無料で利用できるのは Intel と gfortran であり、...
とする Intel のコンパイラは使えない。そこで gfortran を使...
~
なお、Ver. 3.5 では、コンパイル時に次のようなメッセージが...
************************** W A R N I N G ***************...
There are some Fortran 20003 features in WRF that your c...
The IEEE signaling call has been removed. That may not ...
********************************************************...
gfortran が Fortran 2003(20003 というのは次々に現れる規格...
とりあえず動いているし、Ver 3.4.1 と変わらないようなので...
~
--- その他の情報とコメント~
・コンパイラを変更すると、OpenMPI などのライブラリも同じ...
・標準的な Debian の環境で WRF を並列処理できるので、環境...
・フリーで Open64 というコンパイラの選択肢もある。しかし...
~
~
// 現在、Fortran は過去の言語となりつつあり、高性能なコン...
// 入手価格が低廉であるか、またはゼロであるようなコンパイ...
*** ダウンロード [#o958ed1c]
-- ユーザー登録~
WRF は無償で手に入れることができる。しかし、ユーザー登録...
http://www.mmm.ucar.edu/wrf/users/download/get_source.htm...
二度目からは、Returning User をクリックすれば、メールアド...
(更新 : 2013-03-25 (月) 14:11:54)~
~
-- プログラムの種類~
WRF を利用するために、ソースプログラムをダウンロードしよ...
ことに気づいて戸惑う。これらのソースプログラムはそれぞれ...
--- &color(darkred){ARW}; : &color(red){A};dvanced &color...
力学計算や放射計算などが組み込まれたソースプログラムであ...
[[UCAR/NCAR の研究部門>http://www.mmm.ucar.edu/]] で開発...
~
--- &color(darkred){NMM}; : &color(red){N};onhydrostatic ...
こちらも力学計算や放射計算などが組み込まれた WRF の中核的...
[[NOAA>http://www.noaa.gov/]]と[[NCEP>http://www.ncep.noa...
現業用であり、研究目的には上記の ARW がよく使われるようで...
~
--- &color(darkred){WPS}; : WRF Preprocessor System~
現実のデータを ARW に与えるための前処理プログラム。
理想的な地形、簡単な初期条件を用いて計算する場合には不必...
~
--- &color(darkred){WRF-DA}; : WRF Data Assimilation~
データ同化システムのようである。詳しくはわからない。~
~
--- &color(darkred){WRF-Chem}; : ~
大気中の化学物質の輸送を計算するプログラムのようである。...
~
--- &color(darkred){Post-Processing Software}; : ~
WRF から出力されたものを図にするためのソフトウエア~
~
--- &color(darkred){Utilities}; : ~
その他の補助的なソフトウエア~
~
-- 理想化実験を行う際にダウンロードすべきもの~
--- ARW~
ソフトウエアの種類は上述のとおりなので、とりあえず必要な...
[[ダウンロードのページ>http://www.mmm.ucar.edu/wrf/users/...
サイズは概ね次の通り。~
・Ver. 3.4.1 : 28MB程度~
・Ver. 3.5 : 38MB程度~
~
--- Post-Processing Software~
描画などの後処理をする場合。とりあえずコンパイルできるこ...
(更新 : 2013-03-25 (月) 14:41:27)~
~
-- 更新ファイル~
--- Ver. 3.4.1 の場合~
いくつかの必要な更新ファイルが出ている(cf. [[Known Proble...
対策のとられた日付けが、Ver 3.4.1 のリリースの日(2012年8...
それほど親切ではないので、確認しながら自分で対策をとる。...
今回の場合( module_mp_radar.F と input_wrf.F )は、全体に...
~
なお、WRF では実行する度にソースツリーが変更される。そこ...
~
--- Ver. 3.5 の場合~
今のところ更新は無い。~
(更新 : 2013-04-30 (火) 19:06:25)~
~
-- Ver. 3.4.1 と Ver. 3.5 の違い
--- ソフトウエアそのものの違い~
更新された部分については、[[ここ>http://www.mmm.ucar.edu/...
--- テストケースの違い(理想化実験では違いなし)~
WRF(ARW)には、計算例としていくつかの設定ファイルが用意さ...
&color(red){理想化実験については};、これらの設定ファイル...
・ dyn_em/module_initialize_*.F~
・ test ディレクトリ~
~
*** コンパイルから試しの実行まで( gfortran serial -並列処...
※ 計測した時間は Ver. 3.4.1 で計測したもの。
++ configure~
コンパイラとして gfortran を選ぶ。また、CPU は一つのコア...
実際の入力と出力結果は次の通り。&color(red){->};は入力に...
-> [localhost] ~/WRFV3 15:34:15 $ ./configure
checking for perl5... no
checking for perl... found /usr/bin/perl (perl)
** WARNING: No path to NETCDF and environment variabl...
** would you like me to try to fix? [y]
-> y
Enter full path to NetCDF include directory on your s...
-> /usr/include
Enter full path to NetCDF library directory on your s...
-> /usr/lib
...(中略)
-----------------------------------------------------...
Please select from among the following supported plat...
1. Linux x86_64, PGI compiler with gcc (serial)
...(中略)
23. x86_64 Linux, gfortran compiler with gcc (se...
...(中略)
-> Enter selection [1-34] : 23
-----------------------------------------------------...
-> Compile for nesting? (0=no nesting, 1=basic, 2=preset...
Configuration successful. To build the model type com...
...(以下省略)
(更新 : 2013-03-25 (月) 15:48:29)~
~
++ compile~
具体的に実行可能プログラムを作るには、compile コマンドを...
-> ./compile
すると、こんな理想化条件が実行できます、というメッセージ...
-> ./compile em_seabreeze2d_x
結構な時間をかけてコンパイルすることになる。一番最後に、...
build started: 2013年 3月 25日 月曜日 15:46:02 JST
build completed: 2013年 3月 25日 月曜日 15:57:42 JST
~
なお、選べるサンプルプログラムは次の通り。~
#style(class=table_left)
| 次元 | ケースの名称 | 設定 ...
| 1 | em_scm_xy | single column model, 4 ...
| | | |
| 2 | em_grav2d_x | gravity current, 100 m ...
| 2 | em_hill2d_x | flow over a hill, 2 km ...
| 2 | em_seabreeze2d_x | water and land, 2 km, 2...
| 2 | em_squall2d_x | squall line, 250 m ...
| 2 | em_squall2d_y | transpose of above prob...
| | | |
| 3 | em_b_wave | baroclinic wave, 100 km...
| 3 | em_fire | surface fire, 50 m ...
| 3 | em_heldsuarez | global case with polar ...
| 3 | em_les | large eddy simulation, ...
| 3 | em_quarter_ss | super cell, 2 km ...
| 3 | em_tropical_cyclone | hurricane, 15 km ...
#clear
~
~
++ 実行
-> cd test/em_seabreeze2d_x
-> csh ./run_me_first.csh
-> ./ideal.exe
-> time ./wrf.exe
最後に
d01 2007-06-01_17:00:00 wrf: SUCCESS COMPLETE WRF
と表示されて実行も終了。time で測った所要時間は次のとおり。
real 4m59.360s
user 4m50.266s
(更新 : 2013-03-25 (月) 16:15:02)~
~
*** コンパイルから試しの実行まで( gfortran dmpar -MPIによ...
※ 計測した時間は Ver. 3.4.1 で計測したもの。
++ configure~
コンパイラとして gfortran を選ぶ。また、CPU の複数コアを...
実際の入力と出力結果(ほとんど省略)~
-> [localhost] ~/WRFV3 15:34:15 $ ./configure
...(中略)
-----------------------------------------------------...
Please select from among the following supported plat...
1. Linux x86_64, PGI compiler with gcc (serial)
...(中略)
25. x86_64 Linux, gfortran compiler with gcc (dm...
...(中略)
-> Enter selection [1-34] : 25
-----------------------------------------------------...
...(以下省略)
~
++ compile~
2次元の海陸風モデルは、MPIに対応していない。そこで、3次元...
-> ./compile em_b_wave
結構な時間をかけてコンパイルすることになる。一番最後に、...
build started: 2013年 3月 25日 月曜日 17:19:28 JST
build completed: 2013年 3月 25日 月曜日 17:31:53 JST
~
++ 実行
-> cd test/em_b_wave
-> csh ./run_me_first.csh
-> mpirun -n 5 ./ideal.exe
-> time mpirun -n 5 ./wrf.exe
ログは表示されない。mpirun を使って実行するところがミソ。...
real 3m21.428s
user 16m32.850s
sys 0m2.952s
同じプログラムを serial で実行すると、dmpar では2〜3倍の...
real 9m19.641s
user 9m2.306s
sys 0m14.033s
(更新 : 2013-03-25 (月) 18:37:30)~
~
*** コンパイルから試しの実行まで( gfortran smpar -SMPによ...
※ 計測した時間は Ver. 3.4.1 で計測したもの。
++ configure~
コンパイラとして gfortran を選ぶ。また、CPU の複数コアを...
実際の入力と出力結果(ほとんど省略)~
-> [localhost] ~/WRFV3 15:34:15 $ ./configure
...(中略)
-----------------------------------------------------...
Please select from among the following supported plat...
1. Linux x86_64, PGI compiler with gcc (serial)
...(中略)
24. x86_64 Linux, gfortran compiler with gcc (sm...
...(中略)
-> Enter selection [1-34] : 24
-----------------------------------------------------...
...(以下省略)
~
++ compile~
3次元の傾圧不安定波を選んで実行する。
-> ./compile em_b_wave
...(中略)
build started: 2013年 3月 28日 木曜日 12:17:18 JST
build completed: 2013年 3月 28日 木曜日 12:28:56 JST
~
++ 実行~
環境変数 OMP_NUM_THREADS でコアの数を与えるのがミソ。
-> cd test/em_b_wave
-> csh ./run_me_first.csh
-> export OMP_NUM_THREADS=5
-> ./ideal.exe
-> time ./wrf.exe
...(中略)
real 3m13.938s
user 15m12.773s
sys 0m28.894s
~
serial で実行するよりも、2〜3倍の速い。~
(更新 : 2013-03-28 (木) 14:43:09)~
~
*** 最適化あれこれ [#ae8f0816]
※ 計測した時間は Ver. 3.4.1 で計測したもの。
-- コンパイルの並列化~
~
./compile を実行する前に
-> export J="-j 5"
などとすると、コンパイルを並行して実行してくれる。ただし...
~
-- 1D, 2D の計算~
~
SMPAR(Shared Memory Parallel) は 1D と 2D の計算にも対応...
real 3m27.437s
user 16m48.059s
sys 0m18.617s
劇的ではないが、serial の時より、若干速い。~
~
-- 最適化オプション~
~
gcc や gfortran には様々なオプションがある。このうち、手...
パフォーマンスが向上するか調べた。方法としては、./configu...
と書いてある場所の後(2箇所)にオプションを追加すればよい。...
その他の条件は、gfortran の smpar で共通で、3D の em_b_wa...
オプションを追加した時の結果を示す。~
~
・最適化オプションを追加しない場合~
real 3m13.938s
user 15m12.773s
sys 0m28.894s
~
・&color(darkred){-march=amdfam10}; をつけた場合~
(CPUのタイプを特定して最適化)~
real 3m11.984s
user 15m1.412s
sys 0m29.902s
ちょっと速くなる。
~
・&color(darkred){-march=amdfam10 -msse4a}; をつけた場合~
(さらに SSE という仕組みで浮動小数点演算を効率化)~
real 3m10.386s
user 14m55.420s
sys 0m29.230s
非常に微妙なパフォーマンスの改善である。~
~
・&color(darkred){-march=amdfam10 -msse4a -mfpmath=sse}; ...
(さらに小数点の扱いを SSE に適したものに)~
real 3m12.716s
user 15m4.077s
sys 0m29.610s
遅くなる意味がわからない。~
~
・&color(darkred){-march=native -msse4a}; をつけた場合~
(CPUのタイプをコンパイラに選ばせる)
real 3m10.787s
user 14m57.172s
sys 0m29.610s
これで十分なようだ。~
(更新 : 2013-03-28 (木) 17:01:48)
ページ名: