electronic-structure / SIRIUS

Domain specific library for electronic structure calculations
BSD 3-Clause "New" or "Revised" License
121 stars 40 forks source link

The test sirius.scf_test19_cpu_serial in verification/test19 fails: Can't divide 1 ranks into groups of size 4 #868

Closed yurivict closed 2 months ago

yurivict commented 1 year ago

In this place:

1475│     int npk = comm_.size() / npb;
1476│     if (npk * npb != comm_.size()) {
1477│         std::stringstream s;
1478│         s << "Can't divide " << comm_.size() << " ranks into groups of size " << npb;
1479├───────> RTE_THROW(s);
1480│     }

in src/context/simulation_context.cpp the exception is thrown with this error:

Can't divide 1 ranks into groups of size 4

What could be wrong?

Version: 7.4.3 clang-15 mpich-3.4.3 FreeBSD 13.2

toxa81 commented 1 year ago

The only explanation is that mpi_grid_dims != [1,1] (possible values could be [2,2], [1,4] or [4,1]) and execution is requested on 1 MPI rank. So you are basically asking for band paralellisation without providing enough MPI ranks.

toxa81 commented 2 months ago

Specific to FreeBSD or there is a mismatch between linked and runtime versions of mpi