Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Interfaz de Paso de Mensajes




Enviado por Pablo Turmero



Partes: 1, 2


    Monografias.com

    INTRODUCCION A M(ESSAGE) P(ASSING) I(NTERFACE)
    Paradigma de Transferencia de Mensajes
    Cada procesador corre un programa
    Todas las variables son privadas
    La comunicación se realiza a través de subrutinas especiales
    Trans-mensajes

    Monografias.com

    ¿Qué es MPI?
    Es una implementación de un estándar del modelo de paso de mensajes

    Atiende a una estructura SPMD (Single Program/Multiple Data)
    Imágenes del programa en cada máquina
    Datos locales a cada maquina
    Todos los procesadores trabajan con el mismo programa, pero los datos pueden ser diferentes.
    Como asignar tareas diversas con datos diversos?

    Los datos se comparten por medio del paso de mensajes

    Consiste en una serie de librerías C

    Monografias.com

    MPI (Message Passing Interface)
    ? Una colección de rutinas adecuadas para facilitar la comunicación (intercambio de datos y sincronización de tareas) entre distintos procesadores.
    MPI : 1994 / MPI 2 : 1997
    Existen bibliotecas para C y Fortran (C++ y F90).
    Características:
    Es estándar (por consenso, no por normativa)
    Portable
    Flexible (~ 125 rutinas) y expandible
    Simple (con las 6 rutinas básicas se puede hacer mucho!)
    ¿Qué es MPI?

    Monografias.com

    Características de MPI
    Principalmente dirigido a proveer portabilidad del código fuente. No esta totalmente alcanzado todavía

    Ofrece gran funcionalidad
    Diferentes tipos de comunicaciones
    Soporta gran cantidad de tipo de datos
    Soporta datos definidos por el usuario

    Manejo de diferentes topologías
    MPI se escribió con algunos puntos un poco perdidos

    En teoría las aplicaciones MPI se pueden compilar con cualquier implementación MPI existente, pero es posible que el comportamiento sea ligeramente diferente

    Necesidad de recursos que no estén garantizados por la implementación MPI

    NO ES PORTABLE TOTALMENTE

    Monografias.com

    Portabilidad de los programas
    Aspectos a considerar debido a la variedad de implementaciones MPI

    Suponer buffering. No asumir que el envío de datos es tipo buffer

    Suponer sincronización de barrera para llamadas colectivas. En MPI, la comunicación colectiva es bloqueante, pero el programa no debe depender del tipo de sincronización (en este caso barrera)

    Ambigüedades en la comunicación. Los mensajes enviados son los que se espera recibir

    Monografias.com

    Local Area Multiprocesor (LAM)
    Entorno y sistema de desarrollo para procesamiento en paralelo que trabaja sobre redes formadas por procesadores independientes
    Utiliza programación estándar de paso de mensajes (MPI)
    LAM proporciona al usuario una librería API para el paso de mensajes entre diferentes nodos que colaboran para la realización de una aplicación paralela
    Funciona en una gran cantidad de plataformas UNIX y permite trabajar con diferentes tipos de maquinas mezclados

    Monografias.com

    Las diferentes máquinas pueden conectarse a través de una red de área local o a través de Internet

    Características:
    Completa implementación del estándar MPI
    Existen diversas herramientas de desarrollo
    Posibilidad de mezclar diferentes tipos de maquinas en una misma red
    Es posible activar o desactivar nodos dentro de la red
    Si un nodo cae se detecta y es posible recuperarlo cuando vuelva a funcionar
    Existen librerías adicionales MPI para la programación LAM
    Local Area Multiprocesor (LAM)

    Monografias.com

    MPICH y MPICH2
    MPICH2 es una implementación (bastante) portable de alta performance del standart MPI (-1 y -2)
    Principales logros:
    1) provee una implementación MPI soportada en una gran variedad de plataformas HETEROGENEAS. Con gran variedad de redes (10Gigabits, Infiniband, Myrinet, Quadrics ) y tiene algunas cosas interesantes para su mejor funcionamiento en sistemas propietarios como BlueGene, Cray, etc

    2) Es fácil de utilizar en otros entornos derivados lo que permite ampliar sus capacidades enormemente. Por ejemplo crear nuestra librería, o Petsc, o scalapack

    Monografias.com

    Como funcionan?
    Se debe compilar con las librerias adecuadas.

    mpicc -o s.exe sistema.c -lm

    Se debe ejecutar con las instrucciones adecuadas. En general en maquinas grandes, ese problema no es nuestro problema
    source /opt/Modules/3.2.6/init/bash
    module add mvapich2
    Mpirun/mpiexec –comm=pmi -np $NP S.exe

    Monografias.com

    Como funciona MPI?
    En FORTRAN será vía el llamado a subrutinas:
    call MPI_ROUTINE (ARGUMENTOS, IERROR)

    En C el uso será de la forma:
    MPI_Xxxxxx(argumentos)
    El primer paso será invocar a la biblioteca adecuada (C: mpi.h, F: mpif.h)p.e.: #include “mpi.h”
    Todo programa MPI tiene que ser inicializado y finalizado (para liberar correctamente los recursos).

    Monografias.com

    Versión Fortran
    PROGRAM simple
    include ’mpif.h’
    integer errcode
    ! Inicializar MPI
    call MPI_INIT (errcode)
    ! Parte Principal del Prog…
    ! Terminar MPI
    call MPI_FINALIZE (errcode)
    end
    Versión C
    #include “mpi.h”
    /* Headers */
    main(int argc, char **argv)
    {
    /* Inicializar MPI */
    MPI_Init (&argc, &argv);
    /* Parte principal del Prog….. */
    /* Terminar MPI */
    MPI_Finalize ();
    exit (0);
    }
    Un programa MPI: el esquema básico
    Prog.Basico

    Monografias.com

    Como funciona MPI?
    Los siguientes pasos son definir un comunicador, indicar el número total de procesadores en el sistema y el rango de cada uno dentro del conjunto.
    El comunicador típico es MPI_COMM_WORLD (definido en mpi.h/mpif.h): son todos los nodos requeridos al sistema.
    (Pueden definirse otros comunicadores si es necesario)
    Comunicador

    Monografias.com

    Comunicadores
    A cada proceso se le asigna un numero (rank) consecutivo empezando desde 0

    Un mismo procesador puede pertenecer a varios comunicadores diferentes, y su ‘rank’ sera diferente en cada uno de ellos

    MPI_COMM_WORLD es un comunicador que engloba a todos los procesos

    Los mensajes se marcan con una etiqueta o tag que sirve para distinguir entre diferentes tipos

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter