Your code works fine for me.

Have you disabled iptables / any other firewalling?


On Feb 14, 2012, at 10:56 AM, Richard Bardwell wrote:

> In trying to debug an MPI_Waitall hang on a remote
> node, I created a simple code to test.
> 
> If we run the simple code below on 2 nodes on a local
> machine, we send the number 1 and receive number 1 back.
> 
> If we run the same code on a local node and a remote node,
> we send number 1 but get 32767 back. Any ideas ???
> 
> 
> #include <string.h>
> #include <stdio.h>
> #include <stdlib.h>
> #include "mpi.h"
> 
> #define PCPU 8
> int rank,nproc;
> 
> main(argc, argv)
> int argc;
> char *argv[];
> {
>  int i,j,k,i1;
> 
>  MPI_Init(&argc, &argv);
>  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
>  MPI_Comm_size(MPI_COMM_WORLD, &nproc);
> 
>  if (rank==0) {
>   i1 = 1;
>   mpisend(i1);
>  }else{
>   k=mpirecv();
>   printf("R%d: recvd %d\n",rank,k);
>  }
>  MPI_Finalize();
> }
> 
> mpisend(ok)
> 
> int ok;
> 
> {
>  int i,j,k,m;
>  int tag=201;
>  MPI_Request request[PCPU];
>  MPI_Status status[PCPU];
> 
>  for (m=1;m<nproc;m++) {
>   printf("R%d->%d\n",rank,m);
>   MPI_Isend(&ok, 1, MPI_INT, m, tag+m, MPI_COMM_WORLD,&request[m-1]);
>  }
> 
> }
> 
> mpirecv()
> 
> {
>  int i,j,k,m;
>  int hrecv;
>  int tag=201;
>  MPI_Request request[PCPU];
>  MPI_Status status[PCPU];
> 
>  MPI_Irecv(&hrecv, 1, MPI_INT, 0, tag+rank, MPI_COMM_WORLD, &request[rank-1]);
>  MPI_Waitall(1,&request[rank-1],&status[rank-1]);
>  return(hrecv);
> }
> 
> 
> _______________________________________________
> 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/


Reply via email to