Membangun dengan CMake¶
Halaman ini menjelaskan prosedur mulai dari memperoleh kode sumber FrontISTR hingga build dan instalasi. Untuk rincian pustaka dependensi, lihat Dependensi Wajib dan Opsional.
Memperoleh Kode Sumber¶
Kode sumber FrontISTR dapat diperoleh dari GitLab atau GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (mirror)
git clone https://github.com/FrontISTR/FrontISTR.git
Prosedur Build¶
FrontISTR mengasumsikan build out-of-source (build langsung di dalam source tree dilarang). Buat direktori build dan jalankan cmake di dalamnya.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Setelah build, program dapat dijalankan langsung sebagai /path/to/FrontISTR/build/fistr1/fistr1. Untuk menginstalnya ke path sistem (CMAKE_INSTALL_PREFIX), jalankan juga perintah berikut.
Opsi CMake¶
Opsi yang default-nya tercantum sebagai "ON jika terdeteksi" diaktifkan secara otomatis ketika pustaka terkait ditemukan pada sistem saat cmake dijalankan. Opsi tersebut dapat dinonaktifkan secara eksplisit dengan menentukan -DWITH_XXX=OFF.
| Opsi | Default | Deskripsi |
|---|---|---|
WITH_MPI |
ON |
Mengaktifkan paralelisme MPI |
WITH_OPENMP |
ON jika terdeteksi | Mengaktifkan paralelisme thread OpenMP |
WITH_METIS |
ON jika terdeteksi | Mengaktifkan dekomposisi domain menggunakan METIS |
METIS_VER_4 |
OFF |
Menggunakan METIS v4 (OFF menggunakan v5) |
WITH_MUMPS |
ON jika terdeteksi | Mengaktifkan solver langsung paralel MUMPS |
WITH_MKL |
ON jika terdeteksi | Mengaktifkan Intel MKL (termasuk PARDISO) |
WITH_LAPACK |
ON jika terdeteksi | Mengaktifkan estimasi condition number menggunakan LAPACK |
WITH_ML |
ON jika terdeteksi | Mengaktifkan preconditioning AMG menggunakan Trilinos ML |
WITH_REFINER |
ON jika terdeteksi | Mengaktifkan refinement mesh menggunakan REVOCAP_Refiner |
WITH_REVOCAP |
ON jika terdeteksi | Mengaktifkan analisis terkopel menggunakan REVOCAP_Coupler |
WITH_TOOLS |
ON |
Membangun alat bawaan |
WITH_DOC |
OFF |
Menghasilkan dokumentasi API dengan Doxygen |
WITH_NETCDF |
ON jika terdeteksi | Mengaktifkan output Exodus II (NetCDF) |
WINDOWS |
OFF |
Mengaktifkan build untuk Windows |
CMAKE_BUILD_TYPE |
RELEASE |
Jenis build (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX |
/usr/local |
Direktori instalasi |
DEBUG_EXTRA |
OFF |
Mengaktifkan pemeriksaan kebocoran memori (untuk GCC, -fsanitize=address) |
Build DEBUG¶
Jika CMAKE_BUILD_TYPE=DEBUG ditentukan, flag debug khusus compiler berikut ditambahkan.
| Compiler | Flag tambahan |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Membangun dengan GPU¶
Jika NVIDIA HPC SDK (nvc/nvc++/nvfortran) ditentukan sebagai compiler, CMake secara otomatis menambahkan flag berikut.
| Flag | Deskripsi |
|---|---|
-acc |
Mengaktifkan OpenACC |
-Minfo=accel |
Menampilkan informasi tentang offloading GPU saat kompilasi |
-gpu=ccnative,mem:managed |
Secara otomatis mendeteksi GPU di lingkungan build untuk menentukan target dan menggunakan Unified Memory |
Untuk prosedur rinci build GPU dengan OpenACC, lihat Membangun dengan GPU.