第三世代波浪推算モデルSWAN(Simulating WAves Nearshore)を,Windows上のWSL (Ubuntu 22.04) 環境において MPI並列計算対応としてソースからビルドした際の記録です.
ネット上にあまり日本語の情報がないため,せっかくなので今回まとめを作成しました.
前提条件
- Ubuntu 22.04 (WSL2)
- SWANのバージョンは41.51:執筆時点で最新
1. 必要なパッケージをインストール
sudo apt update
sudo apt install -y build-essential gfortran mpich libmpich-dev wget
※ mpichではなくopenmpiを使いたい場合は,
mpich libmpich-devを`openmpi-bin libopenmpi-dev に置き換えてください.
Ubuntuで使える主なMPI実装
| 実装 | 特徴 | Ubuntuでのパッケージ名 |
|---|---|---|
| MPICH | 軽量・高互換性 |
mpich, libmpich-dev
|
| OpenMPI | 高機能・大規模向け |
openmpi-bin, libopenmpi-dev
|
2. SWANソースコードのダウンロード
wget https://sourceforge.net/projects/swanmodel/files/swan/SWAN41.51/SWAN-41.51.tar.gz
tar -xvzf SWAN-41.51.tar.gz
mv SWAN SWAN-41.51-src
cd SWAN-41.51-src
3. ビルド構成ファイルの準備
make config
これにより macros.inc ファイルが生成されます.
4. macros.inc の編集(MPI対応設定)
nano macros.inc
次のように修正・確認:
F90_MPI = mpif90
FLAGS_MPI = -O2
INCS_MPI =
LIBS_MPI =
F90_MPI = mpif90 に設定することで,make mpiターゲットが MPI対応のFortranコンパイラでビルドされるようになります.
5. MPI 対応でmake
make mpi
成功すれば ./swan.exe が生成されます.
6. 実行例(並列計算)
mpirun -np 4 ./swan.exe
※
.swn入力ファイル,地形データおよび風速データが必要です.テストケースなどを用意してください.