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 il partizionamento della mesh 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) |
Compilazione 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 supporto 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 supporto GPU.