In an effort to support more effective code compilation and code optimisation, we have updated the GCC compiler collection installation available in the public software repository. This update brings to the repository GCC versions 13.1.0, 12.3.0, and 11.4.0. Each new version includes GMP, MPC, MPFR, and iSL libraries. Zstandard 1.5.5 is linked as an external compressor. For optimal workload, we optimised those libraries by adding support for AVX2 SIMD extensions. Currently, AVX2 is the highest SIMD extension supported by the CPUs installed on our compute nodes.
The compilation of the GCC code is organised as a three-round process. During the initial round, the GCC code is being compiled against the GMP, MPC, MPFR, and iSL libraries, which were built by the previous version of the GCC compiler collections. A new build of GMP, MPC, MPFR, and iSL is created using the GCC compilers built during the second round of compilation. Ultimately, during the third round, the most recent version of GCC is compiled against the new build of GMP, MPC, MPFR, and iSL, produced during the second round of the compilation process.
The most effective way to test the newly built GCC compiler collection before publishing it is to employ it for compiling some well-known programming code that performs intensive calculations based on floating-point numbers. It is preferable if the code relies on the OpenMP library, which comes with the GCC compiler collection, for executing shared-memory parallelization. An excellent choice in that direction is the code of GROMACS 2023.1. In our case, all three new GCC versions compile GROMACS 2023.1 and make executables with the expected performance.
The recipes used to compile the GCC code are publicly available online: