MPI: MESSAGE PASSING INTERFACE
Enviado por joselyne mamani • 7 de Diciembre de 2018 • Trabajo • 758 Palabras (4 Páginas) • 83 Visitas
MPI: MESSAGE PASSING INTERFACE
¿QUE ES MPI?
MPI (Message Passing Interface) es una librería de paso de mensajes. Se puede utilizar en programas C o Fortran, desde los que se hace llamadas a funciones de MPI para gestión de procesos y para comunicar los procesos entre sí. (Mpi, 2012)
Historia
• Estandarizar MPI involucró a cerca de 60 personas de 40 organizaciones diferentes principalmente de U.S.A. y Europa.(Wikipedia, 2013)
• La mayoría de los vendedores de computadoras concurrentes estaban involucrados con MPI, así como con investigadores de diferentes universidades, laboratorios del gobierno e industrias.
El primer estándar MPI 1.0 fue acabado y publicado en mayo 1994. El estándar ha sido actualizado desde entonces, estando actualmente en desarrollo el MPI 2.
Características de MPI:
Así, con MPI se ha conseguido:
- Estandarización, a muchos niveles, reemplazando virtualmente a todas las implementaciones de paso de mensajes utilizadas para producción
- Portabilidad, pues los programas en MPI funcionan sobre multiprocesadores de memoria compartida, multicomputadores de memoria distribuida, clúster de ordenadores, sistemas heterogéneos.
- Rendimiento, comparable a las librerías propietarias de los vendedores. Para arquitecturas de memoria compartida, las implementaciones de MPI podrían no hacer uso de la red para comunicación, sino de la memoria compartida.
- Riqueza, posee una extensa funcionalidad y muchas implementaciones de calidad.
Características básicas de la programación con MPI
El usuario escribirá su aplicación como un proceso secuencial del que se lanzarán varias instancias que cooperan entre sí.
Los procesos invocan diferentes funciones MPI que permiten
- iniciar, gestionar y finalizar procesos MPI
- comunicar datos entre dos procesos
- realizar operaciones de comunicación entre grupos de procesos
- crear tipos arbitrarios de datos
Funciones básicas de MPI
Cualquier programa paralelo con MPI puede implementarse con tan sólo 6 funciones, aunque hay muchas más funciones para aspectos avanzados. Todas ellas empiezan por MPI_ y obligan a que los programas MPI tengan #include "mpi.h"
MPI_Init | Inicializa el entorno MPI |
MPI_Comm_size | Devuelve el número de procesos |
MPI_Comm_Rank | Devuelve el numero identificador del proceso que lo llama |
MPI_Finalize | Sale de una forma limpia del entorno MPI |
MPI_Send | Envía un mensaje |
MPI_Recv | Recibe un mensaje |
Mensajes:
Un mensaje estará formado por un cierto número de elementos de un mismo tipo MPI.
Ejemplo 1: hola.c (guardar con el botón derecho)
#include
int main(int argc, char *argv[])
{
Int rank, size;
MPI_Init(&argc, &argv); //inicializa el entorno MPI
...