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 ..
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-1のようになっています。
src/を変更したときはmpi/,cuda/,cuda_mpi/もmake(再コンパイル)してください。
mpi/を変更したときはcuda_mpi/もmakeしてください。
cuda/を変更したときはcuda_mpi/もmakeしてください。
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/
特殊な環境のために以下のコンパイルオプションを用意しています。
これらを変更するときは 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倍になります。
単精度でも精度よく計算できるので通常使用しません。