Sari la conținut

Procedura de compilare cu CMake

Această pagină descrie procedura de la obținerea codului sursă FrontISTR până la compilare și instalare. Pentru detalii despre bibliotecile dependente, consultați Dependențe obligatorii și opționale.

Obținerea codului sursă

Codul sursă FrontISTR poate fi obținut de pe GitLab sau GitHub.

# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git

# GitHub (oglindă)
git clone https://github.com/FrontISTR/FrontISTR.git

Procedura de compilare

FrontISTR presupune o compilare în afara arborelui sursă (compilarea direct în rădăcina arborelui sursă este interzisă). Creați directorul build și executați cmake în interiorul acestuia.

cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)

După compilare, poate fi executat direct ca /path/to/FrontISTR/build/fistr1/fistr1. Pentru instalarea în calea de sistem (CMAKE_INSTALL_PREFIX), executați suplimentar comanda de mai jos.

cmake --build . --target install

Lista opțiunilor CMake

Opțiunile pentru care valoarea implicită este indicată ca „ON dacă este detectat” sunt activate automat dacă biblioteca respectivă este găsită în sistem la executarea cmake. Pot fi dezactivate explicit prin specificarea -DWITH_XXX=OFF.

Opțiune Implicit Descriere
WITH_MPI ON Activează paralelismul MPI
WITH_OPENMP ON dacă este detectat Activează paralelismul pe fire OpenMP
WITH_METIS ON dacă este detectat Activează descompunerea domeniului cu METIS
METIS_VER_4 OFF Utilizează METIS v4 (OFF pentru v5)
WITH_MUMPS ON dacă este detectat Activează solverul direct paralel MUMPS
WITH_MKL ON dacă este detectat Activează Intel MKL (inclusiv PARDISO)
WITH_LAPACK ON dacă este detectat Activează estimarea numărului de condiționare cu LAPACK
WITH_ML ON dacă este detectat Activează precondiționarea AMG cu Trilinos ML
WITH_REFINER ON dacă este detectat Activează rafinarea rețelei cu REVOCAP_Refiner
WITH_REVOCAP ON dacă este detectat Activează analiza cuplată cu REVOCAP_Coupler
WITH_TOOLS ON Compilează instrumentele incluse
WITH_DOC OFF Generează documentația API cu Doxygen
WITH_NETCDF ON dacă este detectat Activează ieșirea în format Exodus II (NetCDF)
WINDOWS OFF Activează compilarea pentru Windows
CMAKE_BUILD_TYPE RELEASE Tipul compilării (RELEASE / DEBUG)
CMAKE_INSTALL_PREFIX /usr/local Directorul de instalare
DEBUG_EXTRA OFF Activează verificarea scurgerilor de memorie (pentru GCC, -fsanitize=address)

Compilare DEBUG

Dacă se specifică CMAKE_BUILD_TYPE=DEBUG, se adaugă următoarele opțiuni de depanare, în funcție de compilator.

Compilator Opțiuni suplimentare
GCC -fbounds-check -fbacktrace
Intel -check uninit,bound -traceback
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

Compilare cu GPU

Dacă NVIDIA HPC SDK (nvc/nvc++/nvfortran) este specificat drept compilator, CMake adaugă automat următoarele opțiuni.

Opțiune Descriere
-acc Activează OpenACC
-Minfo=accel Afișează la compilare informații despre transferarea calculului pe GPU
-gpu=ccnative,mem:managed Detectează automat GPU-ul din mediul de compilare pentru a determina ținta și utilizează Unified Memory

Pentru procedura detaliată de compilare GPU cu OpenACC, consultați Compilare cu GPU.

AI-assisted translation May contain errors Official docs Status