Ir para o conteúdo

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.

cmake --build . --target install

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

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.