05 ‐ Compiladores e Implementações MPI - lncc-sered/manual-sdumont2nd GitHub Wiki

Table of Contents

Compiladores disponíveis

GNU GCC

Inclui os compiladores C/C++/GFortran

  • Versão 11.4.1 - Compilador padrão do Sistema Operacional. Não é necessário carregar módulo!
Início

Intel oneAPI

O Intel oneAPI HPC Toolkit é um conjunto de ferramentas de desenvolvimento incluindo Intel® oneAPI DPC++/C++ Compiler, Intel® C++ Compiler, Intel® Fortran Compiler, Intel® MPI Library, Intel® Inspector, Intel® Trace Analyzer and Collector, Intel® Cluster Checker.

Disponível através do módulo intel_oneapi/2025.1

 module load intel_oneapi/2025.1

Site oficial: https://www.intel.com/content/www/us/en/docs/oneapi-hpc-toolkit/get-started-guide-linux/2025-1/overview.html

Documentação: https://www.intel.com/content/www/us/en/developer/articles/guide/download-documentation-intel-oneapi-toolkits-components.html

ATENÇÃO: A partir da versão 2025 Intel OneAPI, os compiladores icc, i++, icpc e ifort foram descontinuados e não estão mais disponíveis. Então é necessário utilizar os comandos abaixo:

  • icx: Compilador C
  • icpx: Compilador C++
  • ifx: Compilador Fortran
Exemplo, usando o Intel OneAPI 2025:
Carrega o módulo
$ module load intel-oneapi/2025.1

$ icx --version
Intel(R) oneAPI DPC++/C++ Compiler 2025.1.4 (2025.1.4.20241205)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/intel/oneapi/2025.1/compiler/2025.1/bin/compiler
Configuration file: /opt/intel/oneapi/2025.1/compiler/2025.1/bin/compiler/../icx.cfg

$ icc --version
-bash: icc: comando não encontrado << erro esperado, pois o compilador não está disponível nessa versão!

$ icpx --version
Intel(R) oneAPI DPC++/C++ Compiler 2025.1.4 (2025.1.4.20241205)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/intel/oneapi/2025.1/compiler/2025.1/bin/compiler
Configuration file: /opt/intel/oneapi/2025.1/compiler/2025.1/bin/compiler/../icpx.cfg

$ icpc --version
-bash: icpc: comando não encontrado << erro esperado, pois o compilador não está disponível nessa versão!

$ ifx --version
ifx (IFX) 2025.1.4 20241205
Copyright (C) 1985-2024 Intel Corporation. All rights reserved.

$ ifort --version
-bash: ifort: comando não encontrado << erro esperado, pois o compilador não está disponível nessa versão!

Início


NVIDIA HPC SDK

O NVIDIA HPC SDK é um conjunto abrangente de compiladores, bibliotecas e ferramentas essenciais para maximizar a produtividade do desenvolvedor e o desempenho e a portabilidade de aplicações HPC. Os compiladores NVIDIA HPC SDK C, C++ e Fortran suportam aceleração por GPU de aplicações de modelagem e simulação HPC com C++ e Fortran padrão, diretivas OpenACC e CUDA. Bibliotecas matemáticas aceleradas por GPU maximizam o desempenho em algoritmos HPC comuns, e bibliotecas de comunicação otimizadas permitem programação de sistemas escaláveis ​​e multi-GPU baseada em padrões.

Disponível através do módulo nvhpc/25.1

 module load nvhpc/25.1

Site oficial e documentação: https://docs.nvidia.com/hpc-sdk/

Compiladores

  • nvc: Compilador C
  • nvc++: Compilador C++
  • nvfortran: Compilador Fortran
  • nvcc: Compilador CUDA C and CUDA C++
Início

AMD Optimizing Compilers (AOCC)

O compilador AOCC foi projetado para compilação de alto desempenho em CPUs x86 de linguagens de programação C, C++ e Fortran. Ele oferece otimizações dependentes e independentes de destino, com foco específico em processadores AMD Zen. Essas otimizações proporcionam vantagem de desempenho para aplicações com tempo crítico, especialmente na área de computação de alto desempenho (HPC). O ambiente do compilador AOCC simplifica e acelera o processo de desenvolvimento e ajuste para aplicações x86 escritas em C, C++ e Fortran.

Disponível através do módulo amd-compilers/5.0.0

 module load amd-compilers/5.0.0

Site oficial e documentação: https://www.amd.com/en/developer/aocc.html

Compiladores

  • clang: Compilador C
  • clang++: Compilador C++
  • flang: Compilador Fortran
Início

MPI

As opções de MPI são OpenMPI e o Intel MPI (baseado no MPICH e fornecido pelo OneAPI). Para colocar os executáveis ( mpicc , mpif77 , etc) no path , execute um dos comandos abaixo.

OpenMPI

A estrutura de módulos de ambiente está organizada para permitir a identificação da versão do compilador desejado.

Recomendamos utilizar uma das versões listadas abaixo! As outras vesões, listadas através do module av openmpi não funcionam corretamente.

  • openmpi/gnu/versão -> Utilizando compiladores GNU (gcc, g++, gfortran)
    • Não é necessário carregar nenhum módulo adicional. Ex:
$ module load openmpi/gnu/5.0.5.1.0
$ mpicc --show
gcc -I/opt/mpi/openmpi/5.0.5.1.0/include -I/opt/mpi/openmpi/5.0.5.1.0/fortran-gnu/include -g -m64 -L/usr/lib64 -L/opt/mpi/openmpi/5.0.5.1.0/lib -L/opt/mpi/openmpi/5.0.5.1.0/fortran-gnu/lib -lmpi

$ mpicc --version
gcc (GCC) 11.4.1 20231218 (Red Hat 11.4.1-3)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  • openmpi/intel1api/versão -> Utilizando compiladores Intel oneAPI
    • É necessário carregar, anteriormente, o módulo dos compiladores Intel oneAPI. Ex:
$ module load intel_oneapi/2025.1
$ module load openmpi/intel1api/4.1.6.15.1

$ mpicc --show
icx -I/opt/mpi/openmpi/4.1.6.15.1/include -I/opt/mpi/openmpi/4.1.6.15.1/fortran-intel1api/include -g -m64 -L/usr/lib64 -L/opt/mpi/openmpi/4.1.6.15.1/lib -L/opt/mpi/openmpi/4.1.6.15.1/fortran-intel1api/lib -lmpi

$ mpicc --version
Intel(R) oneAPI DPC++/C++ Compiler 2025.1.4 (2025.1.4.20241205)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /scratch/app/intel_oneapi/2025/compiler/2025.1/bin/compiler
Configuration file: /scratch/app/intel_oneapi/2025/compiler/2025.1/bin/compiler/../icx.cfg
  • openmpi/amd/versão -> Utilizando compiladores AMD
    • É necessário carregar, anteriormente, o módulo dos compiladores AMD. Ex:
$ module load amd-compilers/5.0.0
$ module load openmpi/amd/5.0.5.1.0

$ mpicc --show
clang -I/opt/mpi/openmpi/5.0.5.1.0/include -I/opt/mpi/openmpi/5.0.5.1.0/fortran-amd/include -g -m64 -L/usr/lib64 -L/opt/mpi/openmpi/5.0.5.1.0/lib -L/opt/mpi/openmpi/5.0.5.1.0/fortran-amd/lib -lmpi

$ mpicc --version
AMD clang version 17.0.6 (CLANG: AOCC_5.0.0-Build#1377 2024_09_24)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /opt/AMD/aocc-compiler-5.0.0/bin
Início

MPI Intel OneAPI 2025

Carregar o módulo

 $ module load intel_oneapi/2025.1

Compiladores MPI

  • mpiicx, mpiicpx e mpiifx: Compiladores Intel
  • mpicc, mpicxx, mpif90, mpifc e mpif77: Compiladores GNU/GCC
Verificar as versões
 $ mpiicx -show
 icx -I"/scratch/app/intel_oneapi/2025/mpi/2021.14/include" -L"/scratch/app/intel_oneapi/2025/mpi/2021.14/lib" -L"/scratch/app/intel_oneapi/2025/mpi/2021.14/lib" -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker "/scratch/app/intel_oneapi/2025/mpi/2021.14/lib" -Xlinker -rpath -Xlinker "/scratch/app/intel_oneapi/2025/mpi/2021.14/lib" -lmpifort -lmpi -ldl -lrt -lpthread
 $ mpicc -show
 gcc -I"/scratch/app/intel_oneapi/2025/mpi/2021.14/include" -L"/scratch/app/intel_oneapi/2025/mpi/2021.14/lib" -L"/scratch/app/intel_oneapi/2025/mpi/2021.14/lib" -Xlinker --enable-new-dtags -Xlinker -rpath -Xlinker "/scratch/app/intel_oneapi/2025/mpi/2021.14/lib" -Xlinker -rpath -Xlinker "/scratch/app/intel_oneapi/2025/mpi/2021.14/lib" -lmpifort -lmpi -lrt -lpthread -Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack -Xlinker --enable-new-dtags -ldl

Início


MPI NVIDIA HPC SDK

Carregar o módulo

 $ module load nvhpc/25.1

Compiladores MPI

  • mpicc, mpicxx, mpif90, mpifort e mpif77
Início

Bibliotecas Otimizadas

  • Intel MKL: Disponível através do módulo do Intel OneAPI
  • Cuda Math Libraries: Disponível através do módulo do NVIDIA HPC SDK
  • AMD Optimizing CPU Libraries (AOCL): Disponível através do módulos: module load amd-libraries/5.0.0
⚠️ **GitHub.com Fallback** ⚠️