// For now, we want things to go horribly wrong if this is used too early...
// TODO: Remove when communicators are removed from commrec (#2395)
- cr->nnodes = -1;
- cr->nodeid = -1;
- cr->sim_nodeid = -1;
- cr->mpi_comm_mysim = MPI_COMM_NULL;
- cr->mpi_comm_mygroup = MPI_COMM_NULL;
+ cr->nnodes = -1;
+ cr->sizeOfMyGroupCommunicator = -1;
+ cr->nodeid = -1;
+ cr->sim_nodeid = -1;
+ cr->mpi_comm_mysim = MPI_COMM_NULL;
+ cr->mpi_comm_mygroup = MPI_COMM_NULL;
// TODO cr->duty should not be initialized here
cr->duty = (DUTY_PP | DUTY_PME);
void gmx_barrier(MPI_Comm gmx_unused communicator)
{
+ if (communicator == MPI_COMM_NULL)
+ {
+ return;
+ }
#if !GMX_MPI
GMX_RELEASE_ASSERT(false, "Invalid call to gmx_barrier");
#else
void gmx_sumd(int gmx_unused nr, double gmx_unused r[], const t_commrec gmx_unused* cr)
{
+ if (cr->sizeOfMyGroupCommunicator == 1)
+ {
+ return;
+ }
+
#if !GMX_MPI
GMX_RELEASE_ASSERT(false, "Invalid call to gmx_sumd");
#else
void gmx_sumf(int gmx_unused nr, float gmx_unused r[], const t_commrec gmx_unused* cr)
{
+ if (cr->sizeOfMyGroupCommunicator == 1)
+ {
+ return;
+ }
+
#if !GMX_MPI
GMX_RELEASE_ASSERT(false, "Invalid call to gmx_sumf");
#else
void gmx_sumi(int gmx_unused nr, int gmx_unused r[], const t_commrec gmx_unused* cr)
{
+ if (cr->sizeOfMyGroupCommunicator == 1)
+ {
+ return;
+ }
+
#if !GMX_MPI
GMX_RELEASE_ASSERT(false, "Invalid call to gmx_sumi");
#else