modelos de pase de mensajes mpi mpich y lam pvm camacho, duilmer hansson, martin márquez, ana...
TRANSCRIPT
![Page 1: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/1.jpg)
Modelos de Pase de Mensajes
MPIMPICH y LAM
PVM Camacho, DuilmerHansson, Martin
Márquez, Ana GabrielaSagarzazu, Iñaki
Universidad Simón BolívarSistemas Operativos IIIProf. Yudith Cardinale
![Page 2: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/2.jpg)
MPIIntroducción
• ¿Que es MPI?Message Passing Interface
• Handles de MPI• Errores en MPI
MPI_ERRORS_ARE_FATAL
MPI_ERRORS_RETURN
• Inicializando y finalizando. Ejemplo básico
![Page 3: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/3.jpg)
#include <mpi.h>
Main(int argc, char **argv)
{
MPI_Init(&argc, &argv);
/* Parte principal del Programa */
if ()
MPI_ABORT(comm, errcode);
/* Terminar el MPI */
MPI_Finalize();
Exit(0);
}
MPIIntroducción
![Page 4: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/4.jpg)
MPIConceptos Básicos
• Procesos (Grupo, Rango)• Grupos
• MPI_COMM_GROUP• MPI_GROUP_EMPTY con no miembros.• MPI_GROUP_NULL es el valor usado para handles de
grupos invalidos.• MPI_GROUP_FREE(group) • MPI_GROUP_SIZE(group, size) • MPI_GROUP_RANK(group, rank)
• Contextos
![Page 5: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/5.jpg)
MPIConceptos Básicos (cont)
• Topologías virtuales• Communicators MPI_COMM_WORLD
• int MPI_Comm_size(MPI_Comm comm, int *size)
• MPI_COMM_DUP(comm, newcomm)
• MPI_COMM_CREATE(comm, group, newcomm)
• MPI_COMM_FREE(comm)
• Inter-Communicators e Intra-Communicators
![Page 6: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/6.jpg)
![Page 7: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/7.jpg)
MPIComunicación Punto a Punto
• Blocking sendMPI_SEND(buf, count, datatype, dest, tag, comm)
• Mensajes de MPI
• Sobre de Mensajes• Blocking Receive
int MPI_Recv(void* buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status)
DataType ... ... ... ...
![Page 8: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/8.jpg)
MPIManejo de Tipos de datos
• Matching de tipos de datos: con tipo y sin tipo y con datos empaquetados.
CALL MPI_COMM_RANK(comm, rank, ierr)
IF(rank.EQ.0) THEN
CALL MPI_SEND(a(1), 10, MPI_REAL, 1, tag, comm, ierr) ELSE
CALL MPI_RECV(b(1), 15, MPI_REAL, 0, tag, comm, status, ierr)
END IF
• Conversion de Datos•Conversion de tipo•Conversion de representación
![Page 9: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/9.jpg)
MPIModos de Comunicación
• Blocking y Standard• Buffered
int MPI_Bsend(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)
• Synchronousint MPI_Ssend(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm)
• Readyint MPI_Rsend(void* buf, int count, MPI_Datatype datatype, int
dest, int tag, MPI_Comm comm)
![Page 10: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/10.jpg)
MPISemantica de Comunicación PP
• Mensajes en ordenCALL MPI_COMM_RANK(comm, rank, ierr)
IF (rank.EQ.0) THEN
CALL MPI_BSEND(buf1, count, MPI_REAL, 1, tag, comm, ierr)
CALL MPI_BSEND(buf2, count, MPI_REAL, 1, tag, comm, ierr)
ELSE ! rank.EQ.1
CALL MPI_RECV(buf1, count, MPI_REAL, 0, MPI_ANY_TAG, comm, status, ierr)
CALL MPI_RECV(buf2, count, MPI_REAL, 0, tag, comm, status, ierr)
END IF
![Page 11: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/11.jpg)
MPISemantica de Comunicación PP
• Progreso• Justicia• Limitaciones de recursos
CALL MPI_COMM_RANK(comm, rank, ierr)
IF (rank.EQ.0) THEN
CALL MPI_SEND(sendbuf, count, MPI_REAL, 1, tag, comm, ierr)
CALL MPI_RECV(recvbuf, count, MPI_REAL, 1, tag, comm, status, ierr)
ELSE ! rank.EQ.1
CALL MPI_RECV(recvbuf, count, MPI_REAL, 0, tag, comm, status, ierr)
CALL MPI_SEND(sendbuf, count, MPI_REAL, 0, tag, comm, ierr) END IF
![Page 12: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/12.jpg)
MPIComunicación Non-Blocking
• int MPI_Isend(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)
• int MPI_Ibsend(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)
• int MPI_Issend(void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm, MPI_Request *request)
• int MPI_Irecv(void* buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Request *request)
![Page 13: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/13.jpg)
![Page 14: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/14.jpg)
MPICompletación de Comunicación
• MPI_WAIT y MPI_TEST• MPI_WAITANY • MPI_TESTANY • MPI_WAITALL • MPI_TESTALL • MPI_WAITSOME • MPI_TESTSOME
![Page 15: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/15.jpg)
MPIComunicación Colectiva
int MPI_Barrier(MPI_Comm comm ) int MPI_Bcast(void* buffer, int count, MPI_Datatype datatype, int root, MPI_Comm comm )
int MPI_Gather(void* sendbuf, int sendcount, MPI_Datatype sendtype, void* recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
int MPI_Gatherv(sendbuf, sendcount, sendtype, recvbuf, *recvcounts, *displs, recvtype, root, comm)
int MPI_Scatter(void* sendbuf, sendcount, sendtype, void* recvbuf, recvcount, recvtype, root, comm)
int MPI_Scatterv(void* sendbuf, *sendcounts, *displs, sendtype, void* recvbuf, recvcount, recvtype, root, comm)
![Page 16: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/16.jpg)
MPIComunicación Colectiva
![Page 17: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/17.jpg)
MPIComunicación Colectiva
• Todos los procesos llaman a las rutinas• La sintaxis es consistente con las
llamadas a comunicación punto a punto• Existe el proceso root.• Type matching es más estricto• Cantidad de datos en send debe ser
igual a la del receive
![Page 18: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/18.jpg)
MPIOperaciones Extendidas MPI-2
• Creación de Inter-communicators• Dos nuevas rutinas colectivas• Un all-to-all generalizado• Operaciones de Intra-communicator• MPI_BCAST,
• MPI_GATHER, MPI_GATHERV,
• MPI_SCATTER, MPI_SCATTERV,
• MPI_ALLGATHER, MPI_ALLGATHERV,
• MPI_ALLTOALL, MPI_ALLTOALLV, MPI_ALLTOALLW
• MPI_REDUCE, MPI_ALLREDUCE,
• MPI_REDUCE_SCATTER,
• MPI_BARRIER.
![Page 19: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/19.jpg)
MPIAdministración y Creación de Procesos
• Creando Procesosint MPI_Comm_spawn(char *command, char *argv[], int maxprocs, MPI_Info info, int root, MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[])
int MPI_Comm_spawn_multiple(int count, char *array_of_commands[], char **array_of_argv[], int array_of_maxprocs[], MPI_Info array_of_info[], int root, MPI_Comm comm, MPI_Comm *intercomm, int array_of_errcodes[])
![Page 20: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/20.jpg)
MPICliente Servidor
• El servidorMPI_Open_port(MPI_INFO_NULL, port_name); MPI_Publish_name("ocean", MPI_INFO_NULL, port_name); MPI_Comm_accept(port_name, MPI_INFO_NULL, 0, MPI_COMM_SELF, &intercomm); /* do something with intercomm */ MPI_Unpublish_name("ocean", MPI_INFO_NULL, port_name);
• El clienteMPI_Lookup_name("ocean", MPI_INFO_NULL, port_name); MPI_Comm_connect( port_name, MPI_INFO_NULL, 0, MPI_COMM_SELF, &intercomm);
![Page 21: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/21.jpg)
MPICHArquitectura
Principios guías del diseño
• DesempeñoMaximizar la cantidad de código que puede ser compartida sin comprometer el desempeño
• PortabilidadProveer una estructura en donde mpich pueda ser portable rápidamente
![Page 22: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/22.jpg)
MPICHArquitectura
Abstract Device Interface
1. Especificar un mensaje para ser enviado o recibido
2. Mover datos entre el ADI y el Hardware3. Administrar listas de mensajes Pendientes4. Proveer información básica sobre el
ambiente de ejecución
![Page 23: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/23.jpg)
MPICHArquitectura
ADI - Channel Interface
• Eager Protocol• Rendezvouz Protocol• Get Protocol
![Page 24: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/24.jpg)
MPICHArquitectura
ADI – Lower Level
• Chameleon• Shared Memory• Specialized• SCI
![Page 25: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/25.jpg)
LAMLocal Area Multicomputer
Historia
• Desarrollado en el Ohio Supercomputer Center• Existe de antes del MPI y fue adoptado para
implementar la interfaz de MPI
![Page 26: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/26.jpg)
LAMLocal Area Multicomputer
Características
• convierte una red de estaciones de trabajo en una computadora paralela virtual
• Amplia la capacidad de monitoreo (tunning y debugging)
• Monitoreo Activado – comunicación a través de demonios, es posible habilitar la comunicación directa entre clientes.
![Page 27: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/27.jpg)
LAM vs. MPICH
Short Message Protocol
Long Message Protocol
LAMEncabezado + Mensaje
es enviado en un mensaje
Dividido en paquetes. Se envia el primero,
una vez que el sender recibe un ack del
receiver procede a enviar el resto.
MPICH Eager ProtocolRendezvouz Protocol
Get Protocol
![Page 28: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/28.jpg)
LAM vs. MPICH
MTUMaximun Transmission
Unit
Communications Channels
LAM Aumentar el MTU mejora el desempeño
del LAM, si embargo se disminuye el
desempeño del MPICH. En ambos casos
aumenta la latencia
Se establece una red completamente
conectada al momento de la inicialización
MPICHSe realizan las
conecciones con base en la demanda
![Page 29: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/29.jpg)
LAM vs. MPICHPing
![Page 30: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/30.jpg)
LAM vs. MPICHPing-Pong
![Page 31: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/31.jpg)
LAM vs. MPICHBroadcast
![Page 32: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/32.jpg)
LAM vs. MPICHGather
![Page 33: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/33.jpg)
LAM vs. MPICHAll To All
![Page 34: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/34.jpg)
PVM
• Introducción• Atributos
• User-configured host pool• Translucent access to hardware• Process-based computation• Explicit message-passing model• Heterogeneity support• Multiprocessor support
![Page 35: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/35.jpg)
PVM
• Compuesto por:• Daemon• Library of PVM interface routines
• Basic Programming techniques• Common Parallel Programming Paradigms
• Crowd– Master-slave– The node only
• Tree
![Page 36: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/36.jpg)
PVM Basic Programming techniques
• Data Descomposition• Funtion Descomposition
1
6
78
543
2
9
![Page 37: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/37.jpg)
PVMUser Interface
• Process Control• Information • Dynamic Configuration• Signaling• Setting and Getting Options• Message Passing• Dynamic Process Groups
![Page 38: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/38.jpg)
PVM
• Message Passing• pvm_initsend()• pvm_pk*()• pvm_send()• pvm_mcast()• pvm_recvf()
• Message Buffers• pvm_initsend()• pvmDataDefault• pvm_mkbufer()• pvm_send(dst ,tag)
![Page 39: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/39.jpg)
PVM
• Packing Data• pvm_pkbyte(char *cp, int nitem, int strike)• pvm_pkint(int *cp, int nitem, int strike)• pvm_pkstr(char *cp)
• Sending and Receiving Data• pvm_send(int tid,int msgtag)• pvm_mcast(int *tids, int ntask, int msgtag)• pvm_recv(int tid,msgtag)
![Page 40: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/40.jpg)
PVM
• Unpacking Data• pvm_upkbyte(char *cp,int nitem,int strike)• pvm_upkint(int *np, int nitem,int strike)• Pvm_upkstr(char *cp)
![Page 41: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/41.jpg)
PVMEjemplo
• Hello.c#include "pvm3.h"main(){ int cc, tid, msgtag; char buf[100]; printf("i'm t%x\n", pvm_mytid()); cc = pvm_spawn("hello_other",(char**)0,0,"", 1,&tid); if (cc == 1){ msgtag = 1;
pvm_recv(tid, msgtag); pvm_upkstr(buf);
printf("from t%x: %s\n", tid, buf); }else { printf("can't start hello_other\n"); }
pvm_exit();}
![Page 42: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/42.jpg)
PVMEjemplo
• Hello_other.c#include "pvm3.h" main(){
int ptid, msgtag; char buf[100]; ptid = pvm_parent(); strcpy(buf, "hello, world from "); gethostname(buf + strlen(buf), 64);
msgtag = 1; pvm_initsend(PvmDataDefault); pvm_pkstr(buf); pvm_send(ptid, msgtag); pvm_exit();}
![Page 43: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/43.jpg)
TituloSubtítulo
• Punto 1• Punto 2
![Page 44: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/44.jpg)
TituloSubtítulo
• Punto 1• Punto 2
![Page 45: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/45.jpg)
TituloSubtítulo
• Punto 1• Punto 2
![Page 46: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/46.jpg)
TituloSubtítulo
• Punto 1• Punto 2
![Page 47: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/47.jpg)
TituloSubtítulo
• Punto 1• Punto 2
![Page 48: Modelos de Pase de Mensajes MPI MPICH y LAM PVM Camacho, Duilmer Hansson, Martin Márquez, Ana Gabriela Sagarzazu, Iñaki Universidad Simón Bolívar Sistemas](https://reader036.vdocument.in/reader036/viewer/2022070416/5665b4561a28abb57c90a7a5/html5/thumbnails/48.jpg)
TituloSubtítulo
• Punto 1• Punto 2