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.
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 |
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.