arkana
16/05/2009, 18:49
Hola.
Estoy con el proyecto de fin de carrera,y estoy terminandolo(gracias a Dios),y me encuentro con un problema que no deberia tener.La cuestion es que mediante MPI,debo enviar una estructura del manager al worker,que consta de 5 vectores y un int,la cosa es,que al principio para enviar un vector,lo que hice fue esto:
for(int j=0;j<numVariables;j++){
MPI_Send(&population[n].indiv.x_var[j],1,MPI_DOUBLE,1,0,MPI_COMM_WORLD);
}
Es decir,mandar todo el contenido del vector de uno en uno,pero logicamente esto necesita de muchas conexiones,con lo que pierdo un tiempo importante.Y resulta que con un solo MPI_send,deberia de poder mandar el vector entero con lo siguiente:
MPI_Recv(&worker_pop.indiv.x_var,numVariables,MPI_DOUBLE,0,M PI_ANY_TAG,MPI_COMM_WORLD,&stat);
Con las dos formas me compila perfectamente(lo cual tampoco quiere decir mucho)pero al ejecutar,con el for lo hace perfectamente,pero si envio el vector entero, me salta el error "collective abort of all ranks",y justo en el momento en el que esta el comando MPI_recv.
Alguien tiene idea de porque puede ser el fallo?
Muchas gracias.
Hasta otra
Estoy con el proyecto de fin de carrera,y estoy terminandolo(gracias a Dios),y me encuentro con un problema que no deberia tener.La cuestion es que mediante MPI,debo enviar una estructura del manager al worker,que consta de 5 vectores y un int,la cosa es,que al principio para enviar un vector,lo que hice fue esto:
for(int j=0;j<numVariables;j++){
MPI_Send(&population[n].indiv.x_var[j],1,MPI_DOUBLE,1,0,MPI_COMM_WORLD);
}
Es decir,mandar todo el contenido del vector de uno en uno,pero logicamente esto necesita de muchas conexiones,con lo que pierdo un tiempo importante.Y resulta que con un solo MPI_send,deberia de poder mandar el vector entero con lo siguiente:
MPI_Recv(&worker_pop.indiv.x_var,numVariables,MPI_DOUBLE,0,M PI_ANY_TAG,MPI_COMM_WORLD,&stat);
Con las dos formas me compila perfectamente(lo cual tampoco quiere decir mucho)pero al ejecutar,con el for lo hace perfectamente,pero si envio el vector entero, me salta el error "collective abort of all ranks",y justo en el momento en el que esta el comando MPI_recv.
Alguien tiene idea de porque puede ser el fallo?
Muchas gracias.
Hasta otra