viernes, 6 de diciembre de 2013

OPEN_MPI Comunicación entre procesos

No hay comentarios.:
 
La comunicación es un factor importante en el paralelismo pues esto afecta el tiempo total del algoritmo

t.total= t. proceso + t. comunicación + t. ocioso

Tenemos algunas operaciones básicas de comunicación entre los procesos en OPEN_MPI:

Send y Recive:  Con Send un proceso envía la información de una variable a otro proceso, con Recive un proceso recibe la información de una variable de otro proceso.

 send(void *sendbuf, int nelems, int dest)

 receive(void *recvbuf, int nelems, int source) 

Donde:
sendbuf apunta a una o más variables (array) que serán enviadas, y recvbuf a las que se reciben, nelems es el número de variables, dest y source identifican al proceso destino y origen.


Broadcast: Al inicio solo un proceso tiene el valor de una variable "M" de tamaño m. Al final, hay p copias (por que hay p procesos) de ese valor M, una copia para cada proceso.

MPI_Bcast(start, count, datatype, root, com)

donde:
start: puntero a los datos a enviar
count: número de elementos a enviar
datatype: tipo de dato
root: identificación del proceso origen
comm: Identificación del comunicador

All Reducción: hay p valores diferentes de M (Mi) y al final hay un solo valor de M (combinación de los Mi por ejemplo como promedio,  suma, producto, máximo) en un solo proceso.

MPI_Reduce(start, result, count, datatype, operation, root, comm)  

donde:
start: puntero a los datos a enviar
result: puntero para almacenar el resultado
count: número de elementos a enviar
datatype: tipo de dato
operation: identificación de la operación colectiva
root: identificación del proceso origen
comm: Identificación del comunicador

MPI tipos de datos:

Se definen los siguientes tipos de datos MPI:
MPI_CHAR            char   
MPI_SHORT            short int
MPI_INT                int
MPI_LONG            long int
MPI_UNSIGNED_CHAR
MPI_UNSIGNED_SHORT
MPI_UNSIGNED
MPI_UNSIGNED_LONG
MPI_FLOAT            float
MPI_DOUBLE            double
MPI_LONG_DOUBLE        long double
MPI_BYTE
MPI_PACKED

visita:
http://www.crearticaperu.com


No hay comentarios.:

Publicar un comentario

 
© 2012. Design by Main-Blogger - Blogger Template and Blogging Stuff