Así que vamos a decir que tengo un programa MPI con 2 procesos, fila 0 y de la fila 1.MPI_Recv - ¿Cómo determinar el recuento?
int i[20], j[20], temp, size;
En proceso con rango 0, tengo
for(temp=0; temp<20; temp++)
i[temp] = temp;
MPI_Send(i, 15, MPI_INT, 1, 1, MPI_COMM_WORLD);
y digamos proceso con rango 1 a continuación, ¿
// At this point, size is declared, but not assigned any value.
MPI_Recv(j,size, MPI_INT, 0, 1, MPI_COMM_WORLD):
cout << "I have received " << size << " elements" ;
Mi pregunta es, en la declaración anterior, ¿se debe declarar el "tamaño"? ¿O MPI_Recv de alguna manera "sabe" que está recibiendo 15 elementos y establece automáticamente el tamaño = 15? Si el tamaño no está definido, ¿qué le sucede al código?
Básicamente, mi pregunta es, estoy enviando un número diferente de elementos a procesadores con diferentes rangos, todos los mensajes procedentes del rango 0. Quiero saber si primero debo enviar el tamaño, y luego preparar los procesadores para recibir tantos elementos, o si puedo enviar la matriz y los procesos automáticamente seleccionan el tamaño desde allí.