使用 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 選項一覽¶
標示為「偵測到時 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 |
使用 GPU 建置¶
當將 NVIDIA HPC SDK(nvc/nvc++/nvfortran)指定為編譯器時,CMake 會自動加入以下旗標。
| 旗標 | 說明 |
|---|---|
-acc |
啟用 OpenACC |
-Minfo=accel |
編譯時顯示 GPU 卸載資訊 |
-gpu=ccnative,mem:managed |
自動偵測建置環境中的 GPU 以決定目標,並使用 Unified Memory |
OpenACC GPU 建置的詳細步驟請參閱使用 GPU 建置。