Message Passing Interface

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:

Storia

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.

Implementazioni

Diverse implementazioni software, sia Open Source che no, sono state create. Le principali sono:

Note

  1. ↑ di William Gropp, Ewing Lusk, e Anthony Skjellum, "Using MPI: Portable Parallel Programming with the Message-Passing Interface", 1994.
  2. ↑ "Parallel Scientific Computation: A Structured Approach using BSP and MPI" di Rob H. Bisseling.
  3. ↑ MPI: A Message-Passing Interface Standard (PDF), MPI Forum, 2015.
  4. ↑ "Parallel Programming with MPI" di Peter S. Pacheco.
  5. ↑ "MPI: The Complete Reference" di Marc Snir, Steve Otto, Steven Huss-Lederman, David Walker, e Jack Dongarra.
  6. 1 2 MPI: Message-Passing Interface Standard (ps), University of Tennessee, 1994.
  7. ↑ Blaise Barney, Message Passing Interface (MPI), su computing.llnl.gov, Lawrence Livermore National Laboratory. URL consultato il 9 aprile 2020 (archiviato dall'url originale il 19 gennaio 2021).
  8. ↑ MPI: A Message-Passing Interface Standard - 2019 draft (PDF), MPI Forum, 2016.
  9. ↑ Mehnaz Hafeez, Sajjad Asghar, Usman Ahmad, MalikAdeel ur Rehman, Naveed Riaz, Survey of MPI Implementations, in Digital Information and Communication Technology and Its Applications, Springer, 2011, DOI:10.1007/978-3-642-22027-2_18.

Bibliografia

Voci correlate

Altri progetti

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica