MPI_BCAST

La funzione MPI_BCAST spedisce un ``messaggio'' (dati) da un processo a tutti gli altri processi appartenenti ad un comunicatore (gruppo) fornito come argomento della funzione.
La sintassi di questa funzione è la seguente:

MPI_BCAST(nomevariabile,numerovariabili,MPI_TIPO,pe,COMUNICATORE,ierr)

dove

Come esempio riporto un banale codice in cui viene utilizzata la funzione in discussione:
 
      program esempio2
      include 'mpif.h' 
      integer nprocs, mype, ierr, i 
      integer imesg(3)

      call MPI_INIT(ierr) 
      call MPI_COMM_SIZE(MPI_COMM_WORLD, nprocs, ierr) 
      call MPI_COMM_RANK(MPI_COMM_WORLD, mype, ierr)

      if(mype.eq.0) then
        do i=1,3
        imesg(i) = i
        enddo
      else
        do i=1,3
        imesg(i) = 0
        enddo
      endif

      write(6,*) mype,' prima:',imesg(1), imesg(2), imesg(3)
      call MPI_BCAST(imesg,3,MPI_INTEGER,0,MPI_COMM_WORLD,ierr)
      write(6,*) mype,' dopo:',imesg(1), imesg(2), imesg(3)
      call MPI_FINALIZE(ierr) 
      end

Il vettore imesg(3) ha le componenti tutte uguali a 0 tranne che per il processo 0. L'operazione eseguita dalla funzione MPI_BCAST fa si che anche gli altri processi assumano per questo vettore i valori del processo 0.
Domanda: può capitare che nell'esecuzione del codice precedente un processo differente dallo 0 (ad esempio il processo 2) scriva a schermo la stringa "2 dopo: 0 0 0"?