目次

4.5 ビルド方法

WindowsでOpenMOMをそのまま実行するときはビルド作業(コンパイル・リンク)は不要ですが、 ソースコードを修正してビルドするには、 開発環境をインストールしたのち以下を行ってください。
コマンドラインでの開発環境については[6]を参考にしてください。

4.5.1 Windows+VC++環境

Windows+VC++環境ではコマンドプロンプトを起動してOpenMOMフォルダに移動した後、 以下のコマンドを実行してください。

> cd sol
> nmake.exe clean
> nmake.exe    計算プログラム(omm.exe)が作成されます
> cd ../post
> nmake.exe clean
> nmake.exe    ポスト処理プログラム(omm_post.exe)が作成されます
> cd ..

4.5.2 Linux+gcc環境

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

4.5.3 倍精度

OpenMOMでは必要メモリーを半減するために連立一次方程式を単精度で計算しています。 通常の用途ではこれで問題ありません。
倍精度で計算するプログラムをビルドするにはsol/Makefileを以下のように変更してください。

Makefile:
CFLAGS  = $(CFLAGS) /D_DOUBLE

Makefile_gcc:
CFLAGS  += -D_DOUBLE

なお、Windows用の倍精度計算プログラムomm_double.exeが配布ファイルに含まれおり、 [ツール]>[計算設定]>[計算精度]>[倍精度]をONにすると倍精度で計算されます。

4.5.4 SIMD無効化

SIMD(ベクトル演算)のない環境でビルドするにはsol/Makefileを以下のように変更してください。

Makefile:
#AVX    = /wd4752

Makefile_gcc:
#AVX    = -mavx
#SIMD   = -D_SIMD

4.5.5 スパコンでの使用法

NECスパコン(NEC SX-Aurora TSUBASA)と 富士通スパコン(Fujitsu Supercomputer PRIMEHPC または 富岳)では、 Makefileの各マクロを下記のように修正してビルドしてください。

表4-5-1 スパコン用のMakefileのマクロ
マクロGCCNECスパコン富士通スパコン
(clangモード)
CCgccnccfcc
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