05 ‐ Compiladores e Implementações MPI - lncc-sered/manual-sdumont2nd GitHub Wiki
Inclui os compiladores C/C++/GFortran
- Versão 11.4.1 - Compilador padrão do Sistema Operacional. Não é necessário carregar módulo!
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
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!
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++
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
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.
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
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
$ 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
Carregar o módulo
$ module load nvhpc/25.1
Compiladores MPI
- mpicc, mpicxx, mpif90, mpifort e mpif77
- 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