Compilação com CMake¶
Esta página descreve o procedimento desde a obtenção do código-fonte do FrontISTR até à compilação e instalação. Para obter detalhes sobre as bibliotecas dependentes, consulte Dependências obrigatórias e opcionais.
Obter o código-fonte¶
O código-fonte do FrontISTR pode ser obtido a partir do GitLab ou do GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (mirror)
git clone https://github.com/FrontISTR/FrontISTR.git
Procedimento de compilação¶
O FrontISTR pressupõe uma compilação fora da árvore de código-fonte (é proibido compilar diretamente na árvore de código-fonte). Crie um 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, pode ser executado diretamente como /path/to/FrontISTR/build/fistr1/fistr1. Para o instalar no caminho do sistema (CMAKE_INSTALL_PREFIX), execute adicionalmente o comando seguinte.
Opções do CMake¶
As opções cuja predefinição é indicada como "ON se detetado" são ativadas automaticamente quando a biblioteca correspondente é encontrada no sistema durante a execução de cmake. Podem ser desativadas explicitamente especificando -DWITH_XXX=OFF.
| Opção | Predefinição | Descrição |
|---|---|---|
WITH_MPI |
ON |
Ativa o paralelismo MPI |
WITH_OPENMP |
ON se detetado | Ativa o paralelismo por threads OpenMP |
WITH_METIS |
ON se detetado | Ativa a decomposição de domínio utilizando METIS |
METIS_VER_4 |
OFF |
Utiliza METIS v4 (OFF utiliza v5) |
WITH_MUMPS |
ON se detetado | Ativa o solver direto paralelo MUMPS |
WITH_MKL |
ON se detetado | Ativa Intel MKL (incluindo PARDISO) |
WITH_LAPACK |
ON se detetado | Ativa a estimativa do número de condição utilizando LAPACK |
WITH_ML |
ON se detetado | Ativa o pré-condicionamento AMG utilizando Trilinos ML |
WITH_REFINER |
ON se detetado | Ativa o refinamento da malha utilizando REVOCAP_Refiner |
WITH_REVOCAP |
ON se detetado | Ativa a análise acoplada utilizando REVOCAP_Coupler |
WITH_TOOLS |
ON |
Compila as ferramentas incluídas |
WITH_DOC |
OFF |
Gera documentação da API com Doxygen |
WITH_NETCDF |
ON se detetado | Ativa a saída Exodus II (NetCDF) |
WINDOWS |
OFF |
Ativa 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 |
Ativa a verificação de fugas de memória (para GCC, -fsanitize=address) |
Compilação DEBUG¶
Quando é especificado CMAKE_BUILD_TYPE=DEBUG, são adicionadas as seguintes opções de depuração específicas do compilador.
| Compilador | Opções 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 as seguintes opções.
| Opção | Descrição |
|---|---|
-acc |
Ativa OpenACC |
-Minfo=accel |
Apresenta informações sobre offloading para a GPU durante a compilação |
-gpu=ccnative,mem:managed |
Deteta automaticamente a GPU no ambiente de compilação para determinar o destino e utiliza Unified Memory |
Para os procedimentos detalhados de compilação com GPU utilizando OpenACC, consulte Compilação com GPU.