Tengo que admitir que me sorprendió bastante ver cuántas líneas de código se requieren para transferir una C struct con MPI.MPI y C construye
¿En qué circunstancias va a funcionar simplemente transmitir una estructura usando el tipo de datos predefinido MPI_CHAR
? Considere el siguiente ejemplo:
struct particle {
double x;
double y;
long i;
};
struct particle p;
MPI_Isend(&p, sizeof(particle), MPI_CHAR, tag, MPI_COMM_WORLD, &sendr);
En mi caso, todos los procesos se ejecutan en la misma arquitectura. ¿El relleno es el único problema?
Me gustaría aprovechar esta oportunidad para decir si MPI no es un requisito estricto, utilice los búferes de protocolo de Google. http://code.google.com/apis/protocolbuffers/ – Stephen
no debe preocuparse por el relleno, sizeof informa el valor correcto, incluido el relleno – Anycorn
, sí, pero puede variar según la arquitectura ... – hanno