Hi, I have two problems, probably mutually related, with Multibinit spin dynamics. Namely, Multibinit executes without issues when using only one core by issuing command:
mpirun -n 1 multibinit --F03 <mb.files |& tee mb.out
However, when I try to run on 2 or more cores (mpirun -n 2 ...
) it exits with the first appearance of line Thermalization run:
. It does not report any error.
I have another issue which is probably related to this one. When I run two Multibinit independent calculations in different folders, each on one core, the top
linux command shows about 100% CPU utilization of each multibinit process, i.e. one core per each of the two processes. However, after starting any additional multibinit calculation the CPU utilization of each multibinit process proportionally decreases. For instance when I run 8 independent calculations each multibinit process utilizes only about 25% CPU time.
My computer has Ryzen 5950x CPU with 16 cores (32 threads), I compiled Abinit ver. 9.10.3 using GNU fortran and openmp. Openmp installation seems to be correct since Siesta parallel calculations run with 100% utilization on every requested core. I configured Abinit for compilation with:
FCFLAGS="-O2 -march=native -mtune=native -ffree-line-length-none -fallow-argument-mismatch -I/home/popsi/.local/include" CFLAGS="-O2 -march=native -mtune=native -I/home/popsi/.local/include" ../configure --with-hdf5=/home/popsi/.local --with-netcdf=/home/popsi/.local --with-netcdf-fortran=/home/popsi/.local --with-linalg-flavor="mkl" --enable-parallel-io --with-mpi --prefix=/home/popsi/.local
Before running multibinit I issue:
export LD_LIBRARY_PATH=/home/popsi/.local/lib:/opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64_lin:$LD_LIBRARY_PATH
export MKLROOT=/opt/intel/compilers_and_libraries_2017.4.196/linux/mkl
Example of mb.in file which I use is:
prt_model = 0
#--------------------------------------------------------------
#Monte carlo / molecular dynamics
#--------------------------------------------------------------
dynamics = 0 ! disable molecular dynamics
ncell = 10 10 10 ! size of supercell.
#-------------------------------------------------------------
#Spin dynamics
#------------------------------------------------------------
spin_dynamics=1 ! 1: HeunP 2: Depondt-Mertens 3: Monte Carlo
spin_mag_field= 0.0 0.0 0.0 ! external magnetic field
spin_ntime_pre =10000 ! warming up steps.
spin_ntime =100000 ! number of steps.
spin_nctime=1000 ! number of time steps between two nc file write
spin_dt=2e-16 s ! time step.
spin_init_state = 1 ! random initial spin
spin_temperature=0.0
spin_var_temperature=1 ! switch on variable temperature calculation
spin_temperature_start=10 ! starting point of temperature
spin_temperature_end=100 ! ending point of temperature.
spin_temperature_nstep=20 ! number of temperature steps.
spin_sia_add = 0 ! add a single ion anistropy (SIA) term?
#spin_sia_k1amp = 1e-6 ! amplitude of SIA (in Ha), how large should be used?
#spin_sia_k1dir = 0.0 0.0 1.0 ! direction of SIA
spin_calc_thermo_obs = 1 ! calculate thermodynamics related observables
Do you have suggestion what I did wrong, i.e. how to make running multibinit spin dynamics in parallel?