WindowsでOpenMOMをそのまま実行するときはビルド作業(コンパイル・リンク)は不要ですが、
ソースコードを修正してビルドするには、
開発環境をインストールしたのち以下を行ってください。
コマンドラインでの開発環境については[6]を参考にしてください。
Windows+VC++環境ではコマンドプロンプトを起動してOpenMOMフォルダに移動した後、
以下のコマンドを実行してください。
> cd sol
> nmake.exe clean
> nmake.exe 計算プログラム(omm.exe)が作成されます
> cd ../post
> nmake.exe clean
> nmake.exe ポスト処理プログラム(omm_post.exe)が作成されます
> cd ..
Linux+gcc環境ではコマンドラインでOpenMOMフォルダに移動した後、
以下のコマンドを実行して下さい。
$ cd sol
$ mv Makefile_gcc Makefile
$ make clean
$ make 計算プログラム(omm)が作成されます
$ cd ../post
$ mv Makefile_gcc Makefile
$ make clean
$ make ポスト処理プログラム(omm_post)が作成されます
$ cd ..
OpenMOMでは必要メモリーを半減するために連立一次方程式を単精度で計算しています。
通常の用途ではこれで問題ありません。
倍精度で計算するプログラムをビルドするにはsol/Makefileを以下のように変更してください。
Makefile: CFLAGS = $(CFLAGS) /D_DOUBLE Makefile_gcc: CFLAGS += -D_DOUBLE
なお、Windows用の倍精度計算プログラムomm_double.exeが配布ファイルに含まれおり、
[ツール]>[計算設定]>[計算精度]>[倍精度]をONにすると倍精度で計算されます。
SIMD(ベクトル演算)のない環境でビルドするにはsol/Makefileを以下のように変更してください。
Makefile: #AVX = /wd4752 Makefile_gcc: #AVX = -mavx #SIMD = -D_SIMD
NECスパコン(NEC SX-Aurora TSUBASA)と
富士通スパコン(Fujitsu Supercomputer PRIMEHPC または 富岳)では、
Makefileの各マクロを下記のように修正してビルドしてください。
マクロ | GCC | NECスパコン | 富士通スパコン (clangモード) |
---|---|---|---|
CC | gcc | ncc | fcc |
OMPOPT | -fopenmp | -fopenmp | -fopenmp |
AVX | -mavx | なし | なし |
SIMD | -D_SIMD | なし | なし |
CFLAGS | -O2 -I../include | -O2 -I../include | -Nclang -Ofast -I../include |
LDFLAGS | -O2 -fopenmp | -O2 -fopenmp | -fopenmp |
LIBS | -lm | なし | -Nlibomp |
定義されるマクロ | __GNUC__ | __NEC__ | __CLANG_FUJITSU |