Basic compilation options for current Debian "Stable" (ver. 13.2) |
- Date: 2025/12/03 00:34
- Name: A.Marmodoro
<marmodoro_remove_@fzu.cz>
- Thanks for all your work.
I recently tried to compile OpenMx ver. 3.9 with the latest patch from: https://www.openmx-square.org/download.html, on a Linux installation of the recently released Debian 'Stable' distribution (ver. 13.2, codename 'trixie', November 2025) based on Zen3 CPUs by AMD.
Although performances may be suboptimal, I wanted first to use just the default GNU compilers and OpenMPI and BLAS libraries from the distribution. I write here, because I think that current version of the GNU compiler suite enforces by default some stricter checks on the C and Fortran source.
I see that I can overcome many errors, turning them into warnings, with the following gcc and gfortran options at the beginning of 'source/makefile':
CC = mpicc -O2 -march=native -fopenmp -fpermissive -Dkcomp -fcommon FC = mpif90 -O2 -march=native -fopenmp -fallow-argument-mismatch
LIB= -lopenblas -lgfortran -lscalapack-openmpi -lfftw3 -lmpi -lmpi_mpifh
This allows the compilation and linking to succeed, and it would appear that execution via '-runtest' gives small-enough discrepancies from reference results:
1 input_example/Benzene.dat Elapsed time(s)= 4.29 diff Utot= 0.000000000038 diff Force= 0.000000000004 2 input_example/C60.dat Elapsed time(s)= 23.93 diff Utot= 0.000000000013 diff Force= 0.000000000003 3 input_example/CO.dat Elapsed time(s)= 14.44 diff Utot= 0.000000000096 diff Force= 0.000000000281 4 input_example/Cr2.dat Elapsed time(s)= 10.11 diff Utot= 0.000000000912 diff Force= 0.000000000171 5 input_example/Crys-MnO.dat Elapsed time(s)= 30.61 diff Utot= 0.000000000001 diff Force= 0.000000000055 6 input_example/GaAs.dat Elapsed time(s)= 45.91 diff Utot= 0.000000000002 diff Force= 0.000000000001 7 input_example/Glycine.dat Elapsed time(s)= 6.09 diff Utot= 0.000000000001 diff Force= 0.000000000000 8 input_example/Graphite4.dat Elapsed time(s)= 4.77 diff Utot= 0.000000000005 diff Force= 0.000000000040 9 input_example/H2O-EF.dat Elapsed time(s)= 4.63 diff Utot= 0.000000000000 diff Force= 0.000000000001 10 input_example/H2O.dat Elapsed time(s)= 4.35 diff Utot= 0.000000000000 diff Force= 0.000000000510 11 input_example/HMn.dat Elapsed time(s)= 20.67 diff Utot= 0.000000000131 diff Force= 0.000000000001 12 input_example/Methane.dat Elapsed time(s)= 3.38 diff Utot= 0.000000000012 diff Force= 0.000000000001 13 input_example/Mol_MnO.dat Elapsed time(s)= 12.65 diff Utot= 0.000000000371 diff Force= 0.000000000011 14 input_example/Ndia2.dat Elapsed time(s)= 5.95 diff Utot= 0.000000000001 diff Force= 0.000000000001
Total elapsed time (s) 191.78
I was however unsure about the disabled checking of argument mismatch for many MPI calls.
May I please ask, are there better suggestions of 'makefile' options, for a compilation only relying on current version of the Debian distribution?
Thanks in advance, best regards, -- Alberto

| |