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.
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 |
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.