COMUNICAZIONI E FUNZIONI COLLETTIVE

Le funzioni MPI per la comunicazione collettiva permettono di scambiare  dati all'interno di un gruppo di processi. Il comunicatore, contenuto come argomento di queste funzioni, specifica quali processi sono coinvolti nella comunicazione.

Ci sono vari tipi di comunicazione collettiva e le principali, insieme alla funzione che svolgono, sono illustrate qui di seguito:

La seguente tabella contiene il nome e la funzionalità delle precedenti funzioni di comunicazione collettiva MPI:
 

                          Funzione
                               
                       Operazione
                               
MPI_BCAST spedisce dati da un processo ad altri processi appartenenti ad un gruppo
MPI_GATHER
MPI_ALLGATHER
dati posseduti da diversi processi vengono comunicati ad uno o a tutti i processi appartenenti ad un gruppo
MPI_REDUCE
MPI_ALLREDUCE
opera sui dati posseduti da diversi processi, ed il risultato è comunicato ad uno o a tutti i processi appartenenti ad un gruppo
MPI_BARRIER mette in pausa l'esecuzione di ogni processo appartenente ad un gruppo fino a che tutti i processi di quel gruppo non sono giunti a questa istruzione

Rispetto all'illustrazione precedente abbiamo aggiunto anche la funzione MPI_BARRIER, utilizzata per sincronizzare i processi appartenenti ad un certo gruppo.
Tutte le funzioni di comunicazione collettiva sono di tipo bloccante; questo termine significa che un processo che esegue una di queste funzioni non prosegue nella elaborazione fino a che non riceve un messaggio di ritorno che gli assicura che l'operazione è andata a buon fine.