5. OpenFDTDの使用法

5.1 開発環境と実行環境

5.1.1 Windows開発環境

WindowsでOpenFDTDをそのまま実行するときは開発環境は不要ですが、 ソースコードをコンパイル・リンクするときは、 コマンドプロンプトを起動してOpenFDTDフォルダに移動した後、 以下のコマンドを実行してください。
なお、[3]で述べた開発環境がインストールされているものとします。

> cd src
> nmake clean
> nmake    OpenMP版(ofd.exe)が作成されます
> cd ..\mpi
> nmake clean
> nmake    MPI+OpenMP版(ofd_mpi.exe)が作成されます
> cd ..\cuda
> nmake clean
> nmake    CUDA版(ofd_cuda.exe)が作成されます
> cd ..\cuda_mpi
> nmake clean
> nmake    CUDA+MPI版(ofd_cuda_mpi.exe)が作成されます
> cd ..

5.1.2 Linux開発環境

Linuxでソースコードをコンパイル・リンクするときは、 コマンドラインでOpenFDTDフォルダに移動した後、 以下のコマンドを実行してください。(注1)
なお、[3]で述べた開発環境がインストールされているものとします。

$ cd src
$ make -f Makefile_gcc clean
$ make -f Makefile_gcc    OpenMP版(ofd)が作成されます
$ cd ../mpi
$ make -f Makefile_gcc clean
$ make -f Makefile_gcc    MPI+OpenMP版(ofd_mpi)が作成されます
$ cd ../cuda
$ make -f Makefile_linux clean
$ make -f Makefile_linux    CUDA版(ofd_cuda)が作成されます
$ cd ../cuda_mpi
$ make -f Makefile_linux clean
$ make -f Makefile_linux    CUDA+MPI版(ofd_cuda_mpi)が作成されます
$ cd ..

(注1)
Makefile_gcc等のファイル名をMakefileに変えるとオプション"-f Makefile_gcc"等は不要です。
(注2)
Makefile_nccはNECスパコン用、Makefile_fccは富士通スパコン用のMakefileです。(CPU版)
どちらもコンパイルオプション"-D_VECTOR"がONになっています。

5.1.3 プログラム構成

プログラムの構成は図5-1-1のようになっています。
src/を変更したときはmpi/,cuda/,cuda_mpi/もmake(再コンパイル)してください。 mpi/を変更したときはcuda_mpi/もmakeしてください。 cuda/を変更したときはcuda_mpi/もmakeしてください。


図5-1-1 プログラム構成

5.1.4 Windows実行環境

Windowsでプログラムを実行するだけのときは以下の実行環境をインストールしてください。

(1) OpenMP
OpenMP対応の実行プログラムを実行するための準備は特に必要ありません。
ただし、実行プログラムのあるフォルダにランタイムライブラリvcomp140.dllが必要です。 (配布ファイルに含まれています。ファイル名の"140"はVC++のバージョンを表します。)

(2) MPI
1台のコンピュータでMPI対応の実行プログラムを実行するための準備は特に必要ありません。
ただし、実行プログラムのあるフォルダにファイル mpiexec.exe, msmpi.dll, smpd.exe が必要です。 (配布ファイルに含まれています)
複数台のコンピュータで実行するときは[3]を参考にしてください。

(3) CUDA
CUDA対応の実行プログラムを実行するためには、NVIDIAのグラフィックスボードが実装され、 グラフィックスドライバーがインストールされていることが必要です。
プログラム実行時に "*** There is no device supporting CUDA" などのメッセージが出て動かないときは グラフィックスドライバーのバージョンが古いことが考えられますので、 下記のサイトから最新のグラフィックスドライバーをダウンロードしてインストールしてください。
http://www.nvidia.co.jp/Download/index.aspx?lang=jp
グラフィックスドライバーは数か月ごとにバージョンアップされますが、 実行プログラムが動作していれば必ずしもバージョンアップする必要はありません。
その他の注意事項については下記のページの「2.セットアップ」を参考にしてください。
http://www.e-em.co.jp/gpu/gpu.htm
複数台のコンピュータで実行するときは下記のページの「7.MPI」を参考にしてください。 ただし高速なネットワーク環境(10Gbps以上)が必要になります。
http://www.e-em.co.jp/tutorial/

5.1.5 コンパイルオプション

特殊な環境のために以下のコンパイルオプションを用意しています。 これらを変更するときは src/, mpi/, cuda/, cuda_mpi/ にあるMakefileをすべて変更して再コンパイルしてください。
通常の環境では使用しないので既定値ではすべてOFFになっています。

D_VECTOR
ベクトル型スパコン(NECスパコンと富士通スパコン)で使用するときONにしてください。
Makefile_nccとMakefile_fccでは既定値でONになっています。
このとき高速に計算できますが必要メモリーが2.4倍になります。

D_ID16, D_ID32, D_ID64
物性値の種類を既定値の256種類以上にするときONにしてください。 それぞれ上限数が216, 231, 263になります。 それに合わせて必要メモリーも増えます。

D_DOUBLE
倍精度で計算するときONにしてください。 必要メモリーが2倍になります。 単精度でも精度よく計算できるので通常使用しません。