WindowsでOpenSTFをそのまま実行するときは開発環境は不要ですが、
ソースコードをコンパイル・リンクするときは、
コマンドプロンプトを起動してOpenSTFフォルダに移動した後、
以下のコマンドを実行してください。
なお、開発環境[7][10]がインストールされているものとします。
> cd src
> nmake clean
> nmake CPU版(ost.exe)が作成されます
> cd ..\mpi
> nmake clean
> nmake MPI対応CPU版(ost_mpi.exe)が作成されます
> cd ..\cuda
> nmake clean
> nmake GPU版(ost_cuda.exe)が作成されます
> cd ..\cuda_mpi
> nmake clean
> nmake MPI対応GPU版(ost_cuda_mpi.exe)が作成されます
> cd ..
Linuxでソースコードをコンパイル・リンクするときは、
コマンドラインでOpenSTFフォルダに移動した後、
以下のコマンドを実行してください。(注1)
なお、GCCとCUDA[7]がインストールされているものとします。
$ cd src
$ make -f Makefile_gcc clean
$ make -f Makefile_gcc CPU版(ofd)が作成されます
$ cd ../mpi
$ make -f Makefile_gcc clean
$ make -f Makefile_gcc MPI対応CPU版(ofd_mpi)が作成されます
$ cd ../cuda
$ make -f Makefile_linux clean
$ make -f Makefile_linux GPU版(ost_cuda)が作成されます
$ cd ../cuda_mpi
$ make -f Makefile_linux clean
$ make -f Makefile_linux MPI対応GPU版(ost_cuda_mpi)が作成されます
$ cd ..
(注1)
Makefile_gcc等のファイル名をMakefileに変えるとオプション"-f Makefile_gcc"等は不要です。
(注2)
Makefile_nccはNECスパコン用、Makefile_fccは富士通スパコン用のMakefileです。(CPU版)
Windowsでプログラムを実行するだけのときは以下の実行環境が必要になります。
(1) OpenMP
OpenMP対応の実行プログラムを実行するための準備は特に必要ありません。
ただし、実行プログラムのあるフォルダにランタイムライブラリvcomp140.dllが必要です。
(配布ファイルに含まれています。ファイル名の"140"はVC++のバージョンを表します。)
(2) MPI
1台のコンピュータでMPI対応の実行プログラムを実行するための準備は特に必要ありません。
ただし、実行プログラムのあるフォルダにファイル mpiexec.exe, msmpi.dll, smpd.exe が必要です。
(配布ファイルに含まれています)
複数台のコンピュータで実行するときは[11]を参考にしてください。
(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
特殊な環境のために以下のコンパイルオプションを用意しています。
これらを変更するときは src/, mpi/, cuda/, cuda_mpi/ にあるMakefileをすべて変更して再コンパイルしてください。
通常の環境では使用しないので既定値ではすべてOFFになっています。
D_ID16, D_ID32, D_ID64
物性値の種類を既定値の256種類以上にするときONにしてください。
それぞれ上限数が216,231,263になります。
それに合わせて必要メモリーも増えます。
D_DOUBLE
倍精度で計算するときONにしてください。
必要メモリーが2倍になります。
単精度でも精度よく計算できるので通常使用しません。