Quando preciso usar o MPI_Barrier ()?

Eu me pergunto quando eu preciso usar barreira? Preciso disso antes / depois de um scatter / gather por exemplo? Ou a OMPI deve garantir que todos os processos tenham atingido esse ponto antes da dispersão / coleta? Da mesma forma, após uma transmissão, posso esperar que todos os processos recebam a mensagem?