Lewati ke isi

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.

cmake --build . --target install

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
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

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.