4. OpenSTFの使用法

4.1 開発環境と実行環境

4.1.1 Windows開発環境

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 ..

4.1.2 Linux開発環境

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版)

4.1.3 Windows実行環境

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

4.1.4 コンパイルオプション

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

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

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