Translation update pending
The Italian translation may be out of date because the Japanese source has changed. The existing translation remains available while it is being updated.
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 |
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) |
NVHPC_NO_ACC | OFF | Disabilita OpenACC quando si usano i compilatori NVIDIA HPC SDK e compila la versione CPU |
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 |
Quando si specifica -DNVHPC_NO_ACC=ON, questi flag non vengono aggiunti.
Per la procedura dettagliata delle build GPU con OpenACC, vedere Compilazione con supporto GPU.