Compilazione con CMake¶
Questa pagina descrive la procedura dall'ottenimento del codice sorgente di FrontISTR fino alla compilazione e all'installazione. Per i dettagli sulle librerie dipendenti, vedere Dipendenze obbligatorie e opzionali.
Ottenimento del codice sorgente¶
Il codice sorgente di FrontISTR può essere ottenuto da GitLab o GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (mirror)
git clone https://github.com/FrontISTR/FrontISTR.git
Procedura di build¶
FrontISTR presuppone una build out-of-source (la compilazione direttamente nell'albero dei sorgenti è vietata). Creare una directory build ed eseguire cmake al suo interno.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Dopo la build, il programma può essere eseguito direttamente come /path/to/FrontISTR/build/fistr1/fistr1. Per installarlo nel percorso di sistema (CMAKE_INSTALL_PREFIX), eseguire inoltre il comando seguente.
Opzioni CMake¶
Le opzioni il cui valore predefinito è indicato come "ON se rilevato" vengono abilitate automaticamente quando la libreria corrispondente viene rilevata nel sistema durante l'esecuzione di cmake. Possono essere disabilitate esplicitamente specificando -DWITH_XXX=OFF.
| Opzione | Predefinito | Descrizione |
|---|---|---|
WITH_MPI |
ON |
Abilita il parallelismo MPI |
WITH_OPENMP |
ON se rilevato | Abilita il parallelismo a thread OpenMP |
WITH_METIS |
ON se rilevato | Abilita la decomposizione del dominio mediante METIS |
METIS_VER_4 |
OFF |
Usa METIS v4 (OFF usa v5) |
WITH_MUMPS |
ON se rilevato | Abilita il solver diretto parallelo MUMPS |
WITH_MKL |
ON se rilevato | Abilita Intel MKL (incluso PARDISO) |
WITH_LAPACK |
ON se rilevato | Abilita la stima del numero di condizionamento mediante LAPACK |
WITH_ML |
ON se rilevato | Abilita il precondizionamento AMG mediante Trilinos ML |
WITH_REFINER |
ON se rilevato | Abilita il raffinamento della mesh mediante REVOCAP_Refiner |
WITH_REVOCAP |
ON se rilevato | Abilita l'analisi accoppiata mediante REVOCAP_Coupler |
WITH_TOOLS |
ON |
Compila gli strumenti inclusi |
WITH_DOC |
OFF |
Genera la documentazione API con Doxygen |
WITH_NETCDF |
ON se rilevato | Abilita l'output Exodus II (NetCDF) |
WINDOWS |
OFF |
Abilita la compilazione per Windows |
CMAKE_BUILD_TYPE |
RELEASE |
Tipo di build (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX |
/usr/local |
Directory di installazione |
DEBUG_EXTRA |
OFF |
Abilita il controllo delle perdite di memoria (per GCC, -fsanitize=address) |
Build DEBUG¶
Quando si specifica CMAKE_BUILD_TYPE=DEBUG, vengono aggiunti i seguenti flag di debug specifici del compilatore.
| Compilatore | Flag aggiuntivi |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Compilazione con una GPU¶
Quando NVIDIA HPC SDK (nvc/nvc++/nvfortran) è specificato come compilatore, CMake aggiunge automaticamente i flag seguenti.
| Flag | Descrizione |
|---|---|
-acc |
Abilita OpenACC |
-Minfo=accel |
Visualizza durante la compilazione le informazioni sull'offloading GPU |
-gpu=ccnative,mem:managed |
Rileva automaticamente la GPU nell'ambiente di build per determinare il target e utilizza la Unified Memory |
Per la procedura dettagliata delle build GPU con OpenACC, vedere Compilazione con una GPU.