Procedimento de compilação com CMake¶
Esta página descreve o procedimento desde a obtenção do código-fonte do FrontISTR até a compilação e a instalação. Para obter detalhes sobre as bibliotecas de dependência, consulte Bibliotecas de dependência obrigatórias e opcionais.
Obtenção do código-fonte¶
O código-fonte do FrontISTR pode ser obtido no GitLab ou no GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (espelho)
git clone https://github.com/FrontISTR/FrontISTR.git
Procedimento de compilação¶
O FrontISTR pressupõe uma compilação fora da árvore de fontes (é proibido compilar diretamente na árvore de fontes). Crie o diretório build e execute cmake dentro dele.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Após a compilação, ele pode ser executado diretamente como /path/to/FrontISTR/build/fistr1/fistr1. Para instalá-lo no caminho do sistema (CMAKE_INSTALL_PREFIX), execute adicionalmente o comando a seguir.
Lista de opções do CMake¶
As opções cujo padrão é indicado como “ON quando detectado” são habilitadas automaticamente quando a biblioteca correspondente é encontrada no sistema durante a execução do cmake. Elas podem ser desabilitadas explicitamente especificando -DWITH_XXX=OFF.
| Opção | Padrão | Descrição |
|---|---|---|
WITH_MPI |
ON |
Habilita o paralelismo MPI |
WITH_OPENMP |
ON quando detectado | Habilita o paralelismo por threads OpenMP |
WITH_METIS |
ON quando detectado | Habilita a decomposição de domínio usando METIS |
METIS_VER_4 |
OFF |
Usa METIS v4 (OFF usa v5) |
WITH_MUMPS |
ON quando detectado | Habilita o solver direto paralelo MUMPS |
WITH_MKL |
ON quando detectado | Habilita Intel MKL (incluindo PARDISO) |
WITH_LAPACK |
ON quando detectado | Habilita a estimativa do número de condição usando LAPACK |
WITH_ML |
ON quando detectado | Habilita o pré-condicionamento AMG usando Trilinos ML |
WITH_REFINER |
ON quando detectado | Habilita o refinamento de malha usando REVOCAP_Refiner |
WITH_REVOCAP |
ON quando detectado | Habilita a análise acoplada usando REVOCAP_Coupler |
WITH_TOOLS |
ON |
Compila as ferramentas incluídas |
WITH_DOC |
OFF |
Gera a documentação da API com Doxygen |
WITH_NETCDF |
ON quando detectado | Habilita a saída no formato Exodus II (NetCDF) |
WINDOWS |
OFF |
Habilita a compilação para Windows |
CMAKE_BUILD_TYPE |
RELEASE |
Tipo de compilação (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX |
/usr/local |
Diretório de instalação |
DEBUG_EXTRA |
OFF |
Habilita a verificação de vazamento de memória (para GCC, -fsanitize=address) |
Compilação DEBUG¶
Quando CMAKE_BUILD_TYPE=DEBUG é especificado, os seguintes sinalizadores de depuração específicos do compilador são adicionados.
| Compilador | Sinalizadores adicionais |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Compilação com GPU¶
Quando NVIDIA HPC SDK (nvc/nvc++/nvfortran) é especificado como compilador, o CMake adiciona automaticamente os seguintes sinalizadores.
| Sinalizador | Descrição |
|---|---|
-acc |
Habilita OpenACC |
-Minfo=accel |
Exibe informações sobre o offload para GPU durante a compilação |
-gpu=ccnative,mem:managed |
Detecta automaticamente a GPU no ambiente de compilação para determinar o destino e usa Unified Memory |
Para obter o procedimento detalhado de compilação para GPU com OpenACC, consulte Compilação com GPU.