boost mpi message truncated error

Hello,
I am using boost mpi and I am having issues getting the message truncation error upon receiving a message. It is not always the same message, but it does always happen and I have been unable to figure out why. Here is the code of interest:
//send particles
for(int i=0;i

Hi Kyle,
First of all, you have to clean up your code and produce a test case, don't
forget to paste the error message, it's useful.
This is a great start:
//send particlesfor(int i=0;i
Hello,****
** **
I am using boost mpi and I am having issues getting the message truncation error upon receiving a message. It is not always the same message, but it does always happen and I have been unable to figure out why. Here is the code of interest:****
** **
//send particles ****
for(int i=0;i
{****
world.isend(i,i,particles_to_be_sent[i]);****
}****
** **
//receive particles****
int receive_counter=0;****
boost::optionalboost::mpi::status msginfo=world.iprobe(mpi::any_source, world.rank());****
while (receive_counter
{****
if (msginfo)****
{****
world.recv(msginfo->source(),world.rank(),particles_received);****
for (unsigned inti=0;i
{****
//add particle to its associated box in the particle grid****
particle_grid[particles_received[i].location_number()].insert(pair
(particles_received[i].global_part_num(),particles_received[i])); **** //check to see if the particle is contained within the box****
if(particles_received[i].position().y()>grid_locations[particles_received[i].location_number()].bottom() ****
&& particles_received[i].position().y()
&& particles_received[i].position().x()>grid_locations[particles_received[i].location_number()].west() ****
&& particles_received[i].position().x()
&& particles_received[i].position().z()>grid_locations[particles_received[i].location_number()].south() ****
&& particles_received[i].position().z()
{****
//if particle is in box, then denote it as such in the particle properties****
particle_properties[particles_received[i].global_part_num()].particle_in_box()[particles_received[i].location_number()]= true;****
}****
}****
receive_counter++;****
}****
msginfo=world.iprobe(mpi::any_source, world.rank());* ***
}****
** **
I have left out variable definitions, but everything has the right type (including sending and receiving the same type-particles_to_be_sent[i] and particles_received are both vector<Particle>, where Particle is a type I’ve created).****
** **
I thought that boost mpi is supposed to take care of making the receive buffer the right size on its own, but something isn’t working here. Any help would be appreciated.****
** **
Thanks,****
Kyle****
** **
** **
** **
** **
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Júlio Hoffimann
-
Kyle Joseph Berger