Ir para o conteúdo

Translation update pending

The Portuguese translation may be out of date because the Japanese source has changed. The existing translation remains available while it is being updated.

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 o particionamento de malha utilizando METIS
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)
NVHPC_NO_ACC OFF Desativa o OpenACC ao utilizar os compiladores do NVIDIA HPC SDK e compila a versão para CPU

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

Quando -DNVHPC_NO_ACC=ON é especificado, estas opções não são adicionadas.

Para os procedimentos detalhados de compilação com GPU utilizando OpenACC, consulte Compilação com GPU.