コンテンツにスキップ

CMake によるビルド手順

このページでは,FrontISTR のソースコード取得からビルド・インストールまでの手順を説明する.依存ライブラリの詳細は 必須・オプション依存ライブラリ を参照されたい.

ソースコードの取得

FrontISTR のソースコードは GitLab または GitHub から取得できる.

# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git

# GitHub(ミラー)
git clone https://github.com/FrontISTR/FrontISTR.git

ビルド手順

FrontISTR はアウトオブソースビルドを前提としている(ソースツリー直下でのビルドは禁止されている).build ディレクトリを作成し,その中で cmake を実行する.

cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)

ビルド後は /path/to/FrontISTR/build/fistr1/fistr1 として直接実行できる.システムのパス(CMAKE_INSTALL_PREFIX)へインストールする場合は追加で以下を実行する.

cmake --build . --target install

CMake オプション一覧

「検出時 ON」と記載されているオプションは,cmake 実行時にシステム上でそのライブラリが見つかった場合に自動的に有効になる.明示的に -DWITH_XXX=OFF を指定することで無効化できる.

オプション デフォルト 説明
WITH_MPI ON MPI 並列を有効にする
WITH_OPENMP 検出時 ON OpenMP スレッド並列を有効にする
WITH_METIS 検出時 ON METIS による領域分割を有効にする
METIS_VER_4 OFF METIS v4 を使用する(OFF で v5)
WITH_MUMPS 検出時 ON MUMPS 並列直接法ソルバーを有効にする
WITH_MKL 検出時 ON Intel MKL(PARDISO 含む)を有効にする
WITH_LAPACK 検出時 ON LAPACK による条件数推定を有効にする
WITH_ML 検出時 ON Trilinos ML による AMG 前処理を有効にする
WITH_REFINER 検出時 ON REVOCAP_Refiner によるメッシュ細分化を有効にする
WITH_REVOCAP 検出時 ON REVOCAP_Coupler による連成解析を有効にする
WITH_TOOLS ON 付属ツール群をビルドする
WITH_DOC OFF Doxygen による API ドキュメントを生成する
WITH_NETCDF 検出時 ON Exodus II 形式の出力(NetCDF)を有効にする
WINDOWS OFF Windows 向けビルドを有効にする
CMAKE_BUILD_TYPE RELEASE ビルドタイプ(RELEASE / DEBUG
CMAKE_INSTALL_PREFIX /usr/local インストール先ディレクトリ
DEBUG_EXTRA OFF メモリリークチェックを有効にする(GCC 向け,-fsanitize=address

DEBUG ビルド

CMAKE_BUILD_TYPE=DEBUG を指定すると,コンパイラ別に以下のデバッグフラグが追加される.

コンパイラ 追加フラグ
GCC -fbounds-check -fbacktrace
Intel -check uninit,bound -traceback
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

GPU を用いたビルド

NVIDIA HPC SDK(nvc/nvc++/nvfortran)をコンパイラとして指定した場合,CMake は自動的に以下のフラグを追加する.

フラグ 説明
-acc OpenACC を有効にする
-Minfo=accel GPU オフロードの情報をコンパイル時に表示する
-gpu=ccnative,mem:managed ビルド環境の GPU を自動検出してターゲットを決定し,Unified Memory を使用する

OpenACC による GPU ビルドの詳細手順は GPU を用いたビルド を参照.