...
It will be available soon.
Programming environment
Compilers
Leonardo compute nodes host four A100 GPUs per node (CUDA compute capability 8.0). The most recent versions of nVIDIA CUDA toolkit and of the nVIDIA nvhpc compilers (ex PGI, supporting CUDA Fortran) is available in the module environment.
Compilers
You can check the complete list of available compilers on MARCONI with the command:
> module available
and checking the "compilers" section. The available compilers are:
- Gnu Compilers Collection (GCC)
- NVIDIA nvhpc (ex PGI)
- CUDA
NVIDIA nvhpc (ex PORTLAND PGI + NVIDIA CUDA)
As of August 5, 2020, the "PGI Compilers and Tools" technology is a part of the NVIDIA HPC SDK product, available as a free download from NVIDIA.
Invocations | Usage |
---|---|
nvc | Compile C source files (C11 compiler. It supports GPU programming with OpenACC, and supports multicore CPU programming with OpenACC and OpenMP) |
nvc++ | Compile C++ source files (C++17 compiler. It supports GPU programming with C++17 parallel algorithms (pSTL) and OpenACC, and supports multicore CPU programming with OpenACC and OpenMP) |
nvfortran | Compile FORTRAN source files (supports ISO Fortran 2003 and many features of ISO Fortran 2008. It supports GPU programming with CUDA Fortran and OpenACC, and supports multicore CPU programming with OpenACC and OpenMP) |
nvcc | CUDA C and CUDA C++ compiler driver for NVIDIA GPUs |
For legacy reasons, the nVIDIA nvhpc suite also offers the PGI C, C++, and Fortran compilers with their original names:
Invocations | Usage |
---|---|
pgcc | Compile C source files. |
pgc++ | Compile C++ source files. |
pgf77 | Compile FORTRAN 77 source files |
pgf90 | Compile FORTRAN 90 source files |
pgf95 | Compile FORTRAN 95 source files |
To enable CUDA C++ or CUDA Fortran, and link with the CUDA runtime libraries, use the -cuda option (-Mcuda is deprecated). Use the -gpu option to tailor the compilation of target accelerator regions.
The OpenACC parallelization is enabled by the -acc flag. GPU targeting and code generation can be controlled by adding the -gpu flag to the compiler command line.
The OpenMP parallelization is enabled by the -mp compiler option. The GPU offload via OpenMP is enabled by the -mp=gpu option.It will be available soon.
Debugger and Profilers
It will be available soon.