incronização implícita com MPI_BCAST para remetente e destinatário

Ao chamar MPI_BCAST, há alguma sincronização implícita? Por exemplo, se o processo do remetente chegasse ao MPI_BCAST antes que outros pudessem executar o BCAST e continuasse sem nenhum reconhecimento? Alguns testes recentes com código como:

program test
include 'mpif.h'

integer ierr, tid, tmp

call MPI_INIT(ierr)
call MPI_COMM_RANK(MPI_COMM_WORLD, tid, ierr)

tmp = tid

if(tid.eq.0) then
  call MPI_BCAST(tmp,1,MPI_INTEGER,MPI_ROOT,MPI_COMM_WORLD, ierr)
else

endif

write(*,*) tid,'done'
call MPI_FINALIZE(ierr)

end

mostra que, com dois threads, ambos alcançam a conclusão, apesar de apenas o remetente fazer uma chamada para MPI_BCAS

Saída

1 done           0
0 done           0

Pode haver um problema com a instalação do MPI em que estou trabalhando (MPICH) ou esse comportamento padrão é para o MP

questionAnswers(2)

yourAnswerToTheQuestion