Message Passing Interface (MPI) è un modello di programmazione e una libreria di standard per la comunicazione tra processi paralleli in calcolo ad alte prestazioni (HPC) e applicazioni distribuite.
Lo standard, alla versione 3.1, definisce la sintassi delle chiamate MPI per i linguaggi C e Fortran.È ampiamente utilizzato per scrivere programmi paralleli che possono eseguire compiti simultaneamente su cluster di computer o supercomputer. Ecco alcuni punti chiave relativi a MPI:
Negli anni '80, con l'aumento della potenza di calcolo dei supercomputer e dei cluster di computer, è emersa la necessità di sviluppare nuovi modelli di programmazione per sfruttare appieno queste risorse. In questo contesto, sono emerse diverse librerie di comunicazione, ciascuna specifica per una piattaforma o un ambiente di sviluppo. 1988: MPI ha avuto origine da un'iniziativa di ricerca congiunta tra il "Argonne National Laboratory" e il "Mississippi State University". Questo sforzo ha portato allo sviluppo dei primi concetti di MPI come una specifica per la comunicazione tra processi paralleli. 1992: MPI-1 è diventato uno standard ufficiale. Questa prima versione standardizzava l'interfaccia di comunicazione e i principali metodi di comunicazione tra i processi paralleli. Ha stabilito le fondamenta per la programmazione parallela basata su MPI. 1995: MPI-2 è stato pubblicato come estensione di MPI-1, aggiungendo nuove funzionalità, come la comunicazione punto a punto remota, la comunicazione non bloccante e la gestione dinamica dei processi. 2008: MPI-2.2 è stato pubblicato come un aggiornamento minore, che ha incluso correzioni di errori e chiarificazioni. 2012: MPI-3 è stato rilasciato come una revisione significativa di MPI, aggiungendo nuove funzionalità come le operazioni atomiche, la gestione dei processi dinamica migliorata, miglioramenti alla comunicazione punto a punto e molto altro.
MPI è uno standard nato a seguito del lavoro di numerose persone appartenenti a diversi gruppi di ricerca. La nascita di un gruppo di lavoro sul progetto avviene nel 1992 presso la conferenza accademica Workshop on Standards for Message Passing in a Distributed Memory Environment. A seguito della creazione del MPI Forum nello stesso anno, il gruppo di lavoro ha prodotto il primo standard MPI 1.0 datato 5 maggio 1994. Successivamente si sono susseguite varie versioni, tra cui la 2.1 pubblicata a settembre 2008 e la 3.1 pubblicata a giugno 2015. Al 2020 la versione 3.1 è ancora l'ultima versione disponibile e nel 2019 è stata pubblicata la bozza della futura versione.
Diverse implementazioni software, sia Open Source che no, sono state create. Le principali sono: