Vai al contenuto

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.

cmake --build . --target install

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
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

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.