Saltar a contenido

Procedimiento de compilación con CMake

Esta página describe el procedimiento desde la obtención del código fuente de FrontISTR hasta la compilación y la instalación. Para obtener información detallada sobre las bibliotecas dependientes, consulte Dependencias obligatorias y opcionales.

Obtención del código fuente

El código fuente de FrontISTR puede obtenerse desde GitLab o GitHub.

# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git

# GitHub (espejo)
git clone https://github.com/FrontISTR/FrontISTR.git

Procedimiento de compilación

FrontISTR presupone una compilación fuera del árbol de fuentes (está prohibido compilar directamente en el árbol de fuentes). Cree el directorio build y ejecute cmake dentro de él.

cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)

Después de compilar, puede ejecutarse directamente como /path/to/FrontISTR/build/fistr1/fistr1. Para instalarlo en la ruta del sistema (CMAKE_INSTALL_PREFIX), ejecute además el comando siguiente.

cmake --build . --target install

Opciones de CMake

Las opciones cuyo valor predeterminado se indica como "ON si se detecta" se habilitan automáticamente cuando la biblioteca correspondiente se encuentra en el sistema al ejecutar cmake. Pueden deshabilitarse explícitamente especificando -DWITH_XXX=OFF.

Opción Valor predeterminado Descripción
WITH_MPI ON Habilita el paralelismo MPI
WITH_OPENMP ON si se detecta Habilita el paralelismo por hilos OpenMP
WITH_METIS ON si se detecta Habilita la descomposición de dominios mediante METIS
METIS_VER_4 OFF Utiliza METIS v4 (OFF utiliza v5)
WITH_MUMPS ON si se detecta Habilita el solver directo paralelo MUMPS
WITH_MKL ON si se detecta Habilita Intel MKL (incluido PARDISO)
WITH_LAPACK ON si se detecta Habilita la estimación del número de condición mediante LAPACK
WITH_ML ON si se detecta Habilita el precondicionamiento AMG mediante Trilinos ML
WITH_REFINER ON si se detecta Habilita el refinamiento de malla mediante REVOCAP_Refiner
WITH_REVOCAP ON si se detecta Habilita el análisis acoplado mediante REVOCAP_Coupler
WITH_TOOLS ON Compila las herramientas incluidas
WITH_DOC OFF Genera documentación de API mediante Doxygen
WITH_NETCDF ON si se detecta Habilita la salida en formato Exodus II (NetCDF)
WINDOWS OFF Habilita la compilación para Windows
CMAKE_BUILD_TYPE RELEASE Tipo de compilación (RELEASE / DEBUG)
CMAKE_INSTALL_PREFIX /usr/local Directorio de instalación
DEBUG_EXTRA OFF Habilita la comprobación de fugas de memoria (para GCC, -fsanitize=address)

Compilación DEBUG

Cuando se especifica CMAKE_BUILD_TYPE=DEBUG, se añaden los siguientes indicadores de depuración específicos de cada compilador.

Compilador Indicadores adicionales
GCC -fbounds-check -fbacktrace
Intel -check uninit,bound -traceback
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

Compilación con GPU

Cuando se especifica NVIDIA HPC SDK (nvc/nvc++/nvfortran) como compilador, CMake añade automáticamente los siguientes indicadores.

Indicador Descripción
-acc Habilita OpenACC
-Minfo=accel Muestra información sobre la descarga a GPU durante la compilación
-gpu=ccnative,mem:managed Detecta automáticamente la GPU del entorno de compilación para determinar el destino y utiliza Unified Memory

Para conocer el procedimiento detallado de compilación con GPU mediante OpenACC, consulte Compilación con GPU.