CMake ile Derleme¶
Bu sayfa, FrontISTR kaynak kodunun edinilmesinden derleme ve kuruluma kadar olan prosedürü açıklar. Bağımlı kütüphanelerin ayrıntıları için Gerekli ve İsteğe Bağlı Bağımlılıklar bölümüne bakın.
Kaynak Kodunu Edinme¶
FrontISTR kaynak kodu GitLab veya GitHub üzerinden edinilebilir.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (ayna)
git clone https://github.com/FrontISTR/FrontISTR.git
Derleme Prosedürü¶
FrontISTR, kaynak ağacının dışında derleme yapılmasını öngörür (doğrudan kaynak ağacında derleme yasaktır). Bir build dizini oluşturun ve cmake'i bu dizin içinde çalıştırın.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Derlemeden sonra /path/to/FrontISTR/build/fistr1/fistr1 olarak doğrudan çalıştırılabilir. Sistem yoluna (CMAKE_INSTALL_PREFIX) kurmak için ayrıca aşağıdaki komutu çalıştırın.
CMake Seçenekleri¶
Varsayılanı "algılanırsa ON" olarak gösterilen seçenekler, cmake çalıştırıldığında ilgili kütüphane sistemde bulunursa otomatik olarak etkinleştirilir. -DWITH_XXX=OFF belirtilerek açıkça devre dışı bırakılabilir.
| Seçenek | Varsayılan | Açıklama |
|---|---|---|
WITH_MPI |
ON |
MPI paralelliğini etkinleştirir |
WITH_OPENMP |
Algılanırsa ON | OpenMP iş parçacığı paralelliğini etkinleştirir |
WITH_METIS |
Algılanırsa ON | METIS ile alan ayrıştırmayı etkinleştirir |
METIS_VER_4 |
OFF |
METIS v4 kullanır (OFF durumunda v5) |
WITH_MUMPS |
Algılanırsa ON | MUMPS paralel doğrudan çözücüyü etkinleştirir |
WITH_MKL |
Algılanırsa ON | Intel MKL'yi (PARDISO dahil) etkinleştirir |
WITH_LAPACK |
Algılanırsa ON | LAPACK kullanarak koşul sayısı tahminini etkinleştirir |
WITH_ML |
Algılanırsa ON | Trilinos ML ile AMG önkoşullandırmayı etkinleştirir |
WITH_REFINER |
Algılanırsa ON | REVOCAP_Refiner ile ağ inceltmeyi etkinleştirir |
WITH_REVOCAP |
Algılanırsa ON | REVOCAP_Coupler ile bağlı analizi etkinleştirir |
WITH_TOOLS |
ON |
Birlikte gelen araçları derler |
WITH_DOC |
OFF |
Doxygen ile API belgeleri oluşturur |
WITH_NETCDF |
Algılanırsa ON | Exodus II çıktısını (NetCDF) etkinleştirir |
WINDOWS |
OFF |
Windows için derlemeyi etkinleştirir |
CMAKE_BUILD_TYPE |
RELEASE |
Derleme türü (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX |
/usr/local |
Kurulum dizini |
DEBUG_EXTRA |
OFF |
Bellek sızıntısı denetimini etkinleştirir (GCC için -fsanitize=address) |
DEBUG Derlemesi¶
CMAKE_BUILD_TYPE=DEBUG belirtildiğinde, derleyiciye özgü aşağıdaki hata ayıklama bayrakları eklenir.
| Derleyici | Ek bayraklar |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
GPU ile Derleme¶
NVIDIA HPC SDK (nvc/nvc++/nvfortran) derleyici olarak belirtildiğinde CMake aşağıdaki bayrakları otomatik olarak ekler.
| Bayrak | Açıklama |
|---|---|
-acc |
OpenACC'yi etkinleştirir |
-Minfo=accel |
Derleme sırasında GPU offload bilgilerini görüntüler |
-gpu=ccnative,mem:managed |
Derleme ortamındaki GPU'yu otomatik algılayarak hedefi belirler ve Unified Memory kullanır |
OpenACC ile GPU derleme prosedürlerinin ayrıntıları için GPU ile Derleme bölümüne bakın.