The following code causes memory fault problem. The initial check shows
that it seemed caused by *ompi_comm_peer_lookup* with MPI_ANY_SOURCE, which
somehow messed up the allocated  temporary buffer used in SendRecv.

any idea?

Dahai

#include <mpi.h>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <sys/types.h>
#include <errno.h>
#include <unistd.h>
#include <values.h>

int main(int argc, char *argv[]) {

   int          local_rank;
   int          numtask, myrank;
   int          count;

   MPI_Status   status;

   long long   *msg_sizes_vec;
   long long   *mpi_buf;
   long long    host_buf[4];

   int          send_tag;
   int          recv_tag;
   int          malloc_size;
   int          dest;

    MPI_Init(&argc,&argv);

    MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
    fprintf(stdout,"my RanK is %d\n",myrank);

    MPI_Comm_size(MPI_COMM_WORLD, &numtask);
    fprintf(stdout,"Num Task is %d\n",numtask);

    malloc_size=32;
    count = malloc_size / sizeof(long long);
    dest = (myrank+1)%2;
    fprintf(stdout,"my dest is %d\n",dest);


    host_buf[0] = 100 + myrank;
    host_buf[1] = 200 + myrank;
    host_buf[2] = 300 + myrank;
    host_buf[3] = 400 + myrank;

    fprintf(stdout,"BEFORE %lld %lld %lld %lld
\n",host_buf[0],host_buf[1],host_buf[2],host_buf[3]);
    fflush(stdout);
    fprintf(stdout,"Doing sendrecv_replace with host buffer\n");
    fflush(stdout);

    MPI_Sendrecv_replace ( host_buf,
                             count,
                     MPI_LONG_LONG,
                              dest,
                            myrank,
                              MPI_ANY_SOURCE,
                              dest,
                    MPI_COMM_WORLD,
                           &status);

    fprintf(stdout,"Back from doing sendrecv_replace with host buffer\n");
    fprintf(stdout,"AFTER %lld %lld %lld %lld
\n",host_buf[0],host_buf[1],host_buf[2],host_buf[3]);
    fflush(stdout);


    MPI_Finalize();
    exit(0);
}
_______________________________________________
devel mailing list
devel@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel

Reply via email to