Ana içeriğe geç

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 --build . --target install

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

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.