====== GCC ======
* Category: Vendor provision
* Access method: Loaded from Linux module software
* Documentation link: https://gcc.gnu.org/onlinedocs/
===== Running =====
=== Versions ===
$ module avail GCC
=== Loading ===
$ module load GCC
=== Testing ===
$ module load GCC
$ gcc -v
===== Recommendations =====
For the AMD Epyc processors which make up Comet, use the ''-march=znver5'' compiler flag for GCC to enable detection and optimisation for the AMD Zen5 architecture of the compute node processors. As all nodes of Comet share the same Zen5 architecture, any binaries produced with these flags will run optimally across //all// node types:
**Normal optimisation**
# Note - this is the recommended optimisation level
gcc -march=znver5 -O2
**Aggressive optimisation**
gcc -march=znver5 -O3
**Full optimisation**
gcc -march=znver5 -Ofast
Additional options are discussed in this article from SUSE:
* https://documentation.suse.com/en-us/sbp/devel-tools/html/SBP-GCC-14/index.html
The ''znver5'' option is only available in **GCC** 14 and higher. Please do not use older compilers with the Epyc processors as you will not get the most optimal binaries produced.
===== Requests =====
Requests for new/alternate versions of this package should be submitted via the [[https://nuservice.ncl.ac.uk|NUIT ITService]] website using the **HPC Software - Installation** category.
Software requests will be collated, prioritized and submitted to our HPC support vendor.
----
[[:advanced:software_list|Back to Software List]]