Anton Shterenlikht wrote:

Will this bit of code work:

        if (rank .eq. <somerank>) then

                *change var*

                call MPI_Bcast(var, 1, MPI_INTEGER, rank, &
                        MPI_COMM_WORLD, errstat)
        end if

        call MPI_Barrier(MPI_COMM_WORLD, errstat)

I'm using a int variable on all processors.
At some point some process can change its
value of this variable.
I then need to let all other
processes know the new value. So I tried
to use MPI_Bcast for this. But I think
MPI waits indefinitely at MPI_Barrier.

I'm now wondering if MPI_Bcast must
be executed by all processes, similar
to MPI_Barrier. Is this correct?

All processes in the communicator must make the collective call... Bcast, Barrier, Allreduce, etc.

Reply via email to