Gromacs installation on Fugaku ARM (A64FX) Node with Fujitsu MPI

Hello everyone,

I am trying to build GROMACS from source on Fugaku ARM (A64FX) compute nodes using the Fujitsu compiler and Fujitsu MPI environment available on the system.

Current software environment:

  • Architecture: aarch64 (A64FX)

  • CPU Vendor: Fujitsu

  • System GCC: GCC 8.5.0

  • Fujitsu Compiler:

    • FCC 4.12.2
    • mpiFCC / mpifcc wrappers available
  • Fujitsu MPI Library: 4.0.1

  • CMake: 3.26.5

MPI environment currently detected:

  • mpirun / mpiexec using Fujitsu MPI Library 4.0.1

  • MPI wrappers:

    • mpifcc
    • mpiFCC
    • mpifrt

Compiler observations:

  • GCC supports:

    • C++11
    • C++14
    • C++17
  • Fujitsu MPI wrappers (mpifcc, mpiFCC) internally report:

    • simulating gcc version 6.1
  • Fujitsu compiler also enters GNU compatibility mode during compilation.

I am currently testing GROMACS 2019.x and 2020.x builds using:

  • Fujitsu MPI enabled build (GMX_MPI=ON)
  • ARM node compilation directly on Fugaku
  • GROMACS own built FFTW (GMX_BUILD_OWN_FFTW=ON)
  • ARM/A64FX optimization attempts

During compilation, I observe warnings related to SIMD/vectorization handling such as:

  • uxsimd sub-option specified in -K option is invalid
  • -Xg option is obsolete. GNU C/C++ compatible mode is active

and in some cases the Fujitsu compiler backend crashes internally during make.

I would appreciate guidance regarding:

  • recommended stable GROMACS versions for Fugaku
  • recommended compiler flags for A64FX/FCC
  • whether SIMD/SVE should initially be disabled
  • whether GROMACS own FFTW is recommended on Fugaku
  • known compatibility limitations with recent GROMACS versions
  • any recommended patches or build procedures used internally on Fugaku systems

Any suggestions or references would be greatly appreciated.

Thank you.

Why use 7 and 6 year old versions??

I suggest using the lastest 2026 release, which has full support for A64FX.

Hi there!

The reason I am using older version is because the compilers installed on the A64FX nodes are also older. As described in my post, the Fujitsu MPI Library is 4.0.1 which simulates gcc 6.1, and this version of gcc does not support gromacs flags like -DGMX_SIMD=ARM_SVE.

Latest version of Gromacs won’t compile on these versions.

I didn’t read carefully enough. But version 2025.3 is installed on Fugaku. Why do you need something different?

For benchmarking purpose, I need to compile Gromacs from scratch so that I can get the benchmarking as per my optimization.

I still do not understand the purpose. Without ARM SVE you are not going to get good performance.

Ohk, but what about fujitsu mpi. Its causing me error during make.

I don’t know how to compile GROMACS on Fugaku. You can check what the 2025.3 installation used by loading it and executing gmx -version

Yes, currently I am using their own gromacs using Spack. I am using benchPEP-h.tpr file as dataset. I want to test for 1/2/4/8/10 nodes with 48 processes and 1 omp thread for only 500 steps (yup 500 steps).

Could you provide me better command, I am an IT person and not familiar with gromacs command. Those AI gives unnecessary flags in command.

If possible, an entire PJM Script would be really grateful.