Ir para o conteúdo

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.

cmake --build . --target install

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

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.