Problemas para entender MPI_Type_create_struct
Tengo problemas para comprender el método MPI_Type_create_struct. Digamos que tenemos una estructura:
struct foo(){
float value;
char rank;
}
Y queremos enviar esta estructura a otro proceso. Considere el ejemplo de código a continuación:
int count = 2; //number of elements in struct
MPI_Aint offsets[count] = {0, 8};
int blocklengths[count] = {1, 1};
MPI_Datatype types[count] = {MPI_FLOAT, MPI_CHAR};
MPI_Datatype my_mpi_type;
MPI_Type_create_struct(count, blocklengths, offsets, types, &my_mpi_type);
No estoy seguro de lo que hacen las compensaciones y las longitudes de bloque en este ejemplo. ¿Alguien puede explicar estas dos partes anteriores?