Thanks, it turns out, this was caused by an error earlier in the code,
resolved on StackOverflow
http://stackoverflow.com/questions/13290608/mpi-err-truncate-on-broadcast


On Fri, Nov 9, 2012 at 9:20 PM, Jeff Squyres <jsquy...@cisco.com> wrote:

> Offhand, your code looks fine.
>
> Can you send a small, self-contained example?
>
>
> On Nov 8, 2012, at 9:42 AM, Lim Jiew Meng wrote:
>
> > I have an int I intend to broadcast from root (rank==(FIELD=0)).
> >
> > int
> >  winner
> >
> >
> > if (rank == FIELD) {
> >
> >     winner
> > = something;
> > }
> >
> >
> > MPI_Barrier
> > (MPI_COMM_WORLD);
> >
> > MPI_Bcast
> > (&winner, 1, MPI_INT, FIELD, MPI_COMM_WORLD);
> >
> > MPI_Barrier
> > (MPI_COMM_WORLD);
> > if (rank != FIELD) {
> >
> >     cout
> > << rank << " informed that winner is " << winner << endl;
> > }
> > But it appears I get
> >
> > [JM:6892] *** An
> >  error occurred in MPI_Bcast
> >
> > [JM:6892] ***
> >  on communicator MPI_COMM_WORLD
> >
> > [JM:6892] *** MPI_ERR_TRUNCATE:
> >  message truncated
> >
> > [JM:6892] *** MPI_ERRORS_ARE_FATAL: your MPI job will now abort
> > Found that I can increase the buffer size in Bcast
> >
> > MPI_Bcast(&winner, NUMPROCS, MPI_INT, FIELD, MPI_COMM_WORLD);
> > Where NUMPROCS is number of running processes. (actually seems like I
> just need it to be 2). Then it runs, but gives unexpected output ...
> >
> > 1 informed that winner is 103
> > 2 informed that winner is 103
> > 3 informed that winner is 103
> > 5 informed that winner is 103
> > 4 informed that winner is 103
> > When I cout the winner, it should be -1
> >
> > Whats wrong? In a simple try, it appears to work:
> >
> >
> >       MPI_Init(NULL, NULL);
> >
> >       MPI_Comm_size(MPI_COMM_WORLD, &numProcs);
> >
> >       MPI_Comm_rank(MPI_COMM_WORLD, &rank);
> >
> >
> >
> >       if (rank == 0) {
> >
> >               srand(time(NULL));
> >
> >               tmp = (rand() % 100) + 1;
> >
> >               cout << "generated " << tmp << endl;
> >
> >       }
> >
> >
> >
> >       MPI_Barrier(MPI_COMM_WORLD);
> >
> >       MPI_Bcast(&tmp, 1, MPI_INT, 0, MPI_COMM_WORLD);
> >
> >       MPI_Barrier(MPI_COMM_WORLD);
> >
> >
> >
> >       if (rank != 0) {
> >
> >               cout << rank << " received " << tmp << endl;
> >
> >       }
> >
> >
> > _______________________________________________
> > users mailing list
> > us...@open-mpi.org
> > http://www.open-mpi.org/mailman/listinfo.cgi/users
>
>
> --
> Jeff Squyres
> jsquy...@cisco.com
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
>
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users
>

Reply via email to